enabled width and alignment adjustment for all layouts
This commit is contained in:
parent
b340058861
commit
78e559fe19
27 changed files with 204 additions and 175 deletions
|
|
@ -49,7 +49,7 @@ public class ItemNumpadAlignment extends ItemDropDown {
|
||||||
|
|
||||||
void onLayoutChange(int mainViewLayout) {
|
void onLayoutChange(int mainViewLayout) {
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
item.setEnabled(mainViewLayout == SettingsStore.LAYOUT_NUMPAD);
|
item.setEnabled(mainViewLayout != SettingsStore.LAYOUT_STEALTH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ public class ItemNumpadWidth extends ItemDropDown {
|
||||||
|
|
||||||
void onLayoutChange(int mainViewLayout) {
|
void onLayoutChange(int mainViewLayout) {
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
item.setEnabled(mainViewLayout == SettingsStore.LAYOUT_NUMPAD);
|
item.setEnabled(mainViewLayout != SettingsStore.LAYOUT_STEALTH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,11 @@ package io.github.sspanak.tt9.ui.main;
|
||||||
import android.graphics.Insets;
|
import android.graphics.Insets;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.view.ContextThemeWrapper;
|
import android.view.ContextThemeWrapper;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.WindowInsets;
|
import android.view.WindowInsets;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
@ -135,7 +137,73 @@ abstract class BaseMainLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void setWidth(int widthPercent) {}
|
/**
|
||||||
|
* Adjusts the width of the keyboard to the given percentage of the screen width.
|
||||||
|
*/
|
||||||
|
private void setKeyboardWidth(int widthPercent) {
|
||||||
|
View keyboard = view != null ? view.findViewById(R.id.keyboard_container) : null;
|
||||||
|
if (keyboard == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LinearLayout.LayoutParams layout = (LinearLayout.LayoutParams) keyboard.getLayoutParams();
|
||||||
|
if (layout != null) {
|
||||||
|
layout.weight = widthPercent;
|
||||||
|
keyboard.setLayoutParams(layout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adjust the padding on both sides of the keyboard to make it centered, or aligned to the
|
||||||
|
* left or right.
|
||||||
|
*/
|
||||||
|
private void setBumperWidth(int widthPercent, int gravity) {
|
||||||
|
View leftBumper = view.findViewById(R.id.bumper_left);
|
||||||
|
View rightBumper = view.findViewById(R.id.bumper_right);
|
||||||
|
if (leftBumper == null || rightBumper == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int leftPadding = 0;
|
||||||
|
int rightPadding = 0;
|
||||||
|
|
||||||
|
switch (gravity) {
|
||||||
|
case Gravity.CENTER_HORIZONTAL:
|
||||||
|
leftPadding = rightPadding = (100 - widthPercent) / 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Gravity.START:
|
||||||
|
rightPadding = 100 - widthPercent;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Gravity.END:
|
||||||
|
leftPadding = 100 - widthPercent;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
LinearLayout.LayoutParams layout = (LinearLayout.LayoutParams) leftBumper.getLayoutParams();
|
||||||
|
if (layout != null) {
|
||||||
|
layout.weight = leftPadding;
|
||||||
|
leftBumper.setLayoutParams(layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
layout = (LinearLayout.LayoutParams) rightBumper.getLayoutParams();
|
||||||
|
if (layout != null) {
|
||||||
|
layout.weight = rightPadding;
|
||||||
|
rightBumper.setLayoutParams(layout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void setWidth(int widthPercent, int gravity) {
|
||||||
|
if (view == null || widthPercent <= 0 || widthPercent > 100) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setBumperWidth(widthPercent, gravity);
|
||||||
|
setKeyboardWidth(widthPercent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
abstract void showCommandPalette();
|
abstract void showCommandPalette();
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
package io.github.sspanak.tt9.ui.main;
|
package io.github.sspanak.tt9.ui.main;
|
||||||
|
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewParent;
|
import android.view.ViewParent;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
@ -164,87 +162,6 @@ class MainLayoutNumpad extends BaseMainLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adjusts the width of the keyboard to the given percentage of the screen width.
|
|
||||||
*/
|
|
||||||
private void setKeyboardWidth(int widthPercent) {
|
|
||||||
View keyboard = view != null ? view.findViewById(R.id.numpad_container) : null;
|
|
||||||
if (keyboard == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
LinearLayout.LayoutParams layout = (LinearLayout.LayoutParams) keyboard.getLayoutParams();
|
|
||||||
if (layout != null) {
|
|
||||||
layout.weight = widthPercent;
|
|
||||||
keyboard.setLayoutParams(layout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adjust the padding on both sides of the keyboard to make it centered, or aligned to the
|
|
||||||
* left or right.
|
|
||||||
*/
|
|
||||||
private void setBumperWidth(int widthPercent, int gravity) {
|
|
||||||
View leftBumper = view.findViewById(R.id.numpad_bumper_left);
|
|
||||||
View rightBumper = view.findViewById(R.id.numpad_bumper_right);
|
|
||||||
if (leftBumper == null || rightBumper == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int leftPadding = 0;
|
|
||||||
int rightPadding = 0;
|
|
||||||
|
|
||||||
switch (gravity) {
|
|
||||||
case Gravity.CENTER_HORIZONTAL:
|
|
||||||
leftPadding = rightPadding = (100 - widthPercent) / 2;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Gravity.START:
|
|
||||||
rightPadding = 100 - widthPercent;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Gravity.END:
|
|
||||||
leftPadding = 100 - widthPercent;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
LinearLayout.LayoutParams layout = (LinearLayout.LayoutParams) leftBumper.getLayoutParams();
|
|
||||||
if (layout != null) {
|
|
||||||
layout.weight = leftPadding;
|
|
||||||
leftBumper.setLayoutParams(layout);
|
|
||||||
}
|
|
||||||
|
|
||||||
layout = (LinearLayout.LayoutParams) rightBumper.getLayoutParams();
|
|
||||||
if (layout != null) {
|
|
||||||
layout.weight = rightPadding;
|
|
||||||
rightBumper.setLayoutParams(layout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void setWidth(int widthPercent, int gravity) {
|
|
||||||
if (view == null || widthPercent <= 0 || widthPercent > 100) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
setBumperWidth(widthPercent, gravity);
|
|
||||||
setKeyboardWidth(widthPercent);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void render() {
|
|
||||||
getView();
|
|
||||||
setKeyHeight(getKeyHeightCompat());
|
|
||||||
setWidth(tt9.getSettings().getNumpadWidthPercent(), tt9.getSettings().getNumpadAlignment());
|
|
||||||
enableClickHandlers();
|
|
||||||
for (SoftKey key : getKeys()) {
|
|
||||||
key.render();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void enableClickHandlers() {
|
protected void enableClickHandlers() {
|
||||||
super.enableClickHandlers();
|
super.enableClickHandlers();
|
||||||
|
|
@ -307,4 +224,16 @@ class MainLayoutNumpad extends BaseMainLayout {
|
||||||
|
|
||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void render() {
|
||||||
|
getView();
|
||||||
|
setKeyHeight(getKeyHeightCompat());
|
||||||
|
setWidth(tt9.getSettings().getNumpadWidthPercent(), tt9.getSettings().getNumpadAlignment());
|
||||||
|
enableClickHandlers();
|
||||||
|
for (SoftKey key : getKeys()) {
|
||||||
|
key.render();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,6 @@ class MainLayoutStealth extends BaseMainLayout {
|
||||||
}
|
}
|
||||||
@Override void hideTextEditingPalette() { isTextEditingPaletteShown = false; }
|
@Override void hideTextEditingPalette() { isTextEditingPaletteShown = false; }
|
||||||
@Override boolean isTextEditingPaletteShown() { return isTextEditingPaletteShown; }
|
@Override boolean isTextEditingPaletteShown() { return isTextEditingPaletteShown; }
|
||||||
|
@Override void setWidth(int w, int g) {}
|
||||||
@Override void render() {}
|
@Override void render() {}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,16 +72,6 @@ class MainLayoutTray extends BaseMainLayout {
|
||||||
return view != null && view.findViewById(R.id.text_editing_container).getVisibility() == LinearLayout.VISIBLE;
|
return view != null && view.findViewById(R.id.text_editing_container).getVisibility() == LinearLayout.VISIBLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
void render() {
|
|
||||||
getView();
|
|
||||||
enableClickHandlers();
|
|
||||||
setSoftKeysVisibility();
|
|
||||||
for (SoftKey key : getKeys()) {
|
|
||||||
key.render();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected ArrayList<SoftKey> getKeys() {
|
protected ArrayList<SoftKey> getKeys() {
|
||||||
|
|
@ -91,4 +81,15 @@ class MainLayoutTray extends BaseMainLayout {
|
||||||
}
|
}
|
||||||
return keys;
|
return keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void render() {
|
||||||
|
getView();
|
||||||
|
setSoftKeysVisibility();
|
||||||
|
setWidth(tt9.getSettings().getNumpadWidthPercent(), tt9.getSettings().getNumpadAlignment());
|
||||||
|
enableClickHandlers();
|
||||||
|
for (SoftKey key : getKeys()) {
|
||||||
|
key.render();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,10 +57,7 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void onViewAttachedToWindow(@NonNull View v) {
|
@Override public void onViewAttachedToWindow(@NonNull View v) { setHeight(height, heightSmall, heightNumpad); }
|
||||||
setHeight(height, heightSmall, heightNumpad);
|
|
||||||
main.setWidth(tt9.getSettings().getNumpadWidthPercent());
|
|
||||||
}
|
|
||||||
@Override public void onViewDetachedFromWindow(@NonNull View v) {}
|
@Override public void onViewDetachedFromWindow(@NonNull View v) {}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
import androidx.recyclerview.widget.DefaultItemAnimator;
|
||||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||||
|
|
@ -36,7 +37,7 @@ public class SuggestionsBar {
|
||||||
|
|
||||||
private final ResizableMainView mainView;
|
private final ResizableMainView mainView;
|
||||||
private final Runnable onItemClick;
|
private final Runnable onItemClick;
|
||||||
private final RecyclerView mView;
|
@Nullable private final RecyclerView mView;
|
||||||
private final SettingsStore settings;
|
private final SettingsStore settings;
|
||||||
private SuggestionsAdapter mSuggestionsAdapter;
|
private SuggestionsAdapter mSuggestionsAdapter;
|
||||||
private Vibration vibration;
|
private Vibration vibration;
|
||||||
|
|
@ -65,6 +66,10 @@ public class SuggestionsBar {
|
||||||
|
|
||||||
|
|
||||||
private void configureAnimation() {
|
private void configureAnimation() {
|
||||||
|
if (mView == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
DefaultItemAnimator animator = new DefaultItemAnimator();
|
DefaultItemAnimator animator = new DefaultItemAnimator();
|
||||||
|
|
||||||
animator.setMoveDuration(SettingsStore.SUGGESTIONS_SELECT_ANIMATION_DURATION);
|
animator.setMoveDuration(SettingsStore.SUGGESTIONS_SELECT_ANIMATION_DURATION);
|
||||||
|
|
@ -77,6 +82,10 @@ public class SuggestionsBar {
|
||||||
|
|
||||||
|
|
||||||
private void initDataAdapter(Context context) {
|
private void initDataAdapter(Context context) {
|
||||||
|
if (mView == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
mSuggestionsAdapter = new SuggestionsAdapter(
|
mSuggestionsAdapter = new SuggestionsAdapter(
|
||||||
context,
|
context,
|
||||||
this::handleItemClick,
|
this::handleItemClick,
|
||||||
|
|
@ -84,6 +93,7 @@ public class SuggestionsBar {
|
||||||
R.id.suggestion_list_item,
|
R.id.suggestion_list_item,
|
||||||
suggestions
|
suggestions
|
||||||
);
|
);
|
||||||
|
|
||||||
mView.setAdapter(mSuggestionsAdapter);
|
mView.setAdapter(mSuggestionsAdapter);
|
||||||
|
|
||||||
setDarkTheme();
|
setDarkTheme();
|
||||||
|
|
@ -91,6 +101,10 @@ public class SuggestionsBar {
|
||||||
|
|
||||||
|
|
||||||
private void initSeparator(Context context) {
|
private void initSeparator(Context context) {
|
||||||
|
if (mView == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Extra XML is required instead of a ColorDrawable object, because setting the highlight color
|
// Extra XML is required instead of a ColorDrawable object, because setting the highlight color
|
||||||
// erases the borders defined using the ColorDrawable.
|
// erases the borders defined using the ColorDrawable.
|
||||||
Drawable separatorDrawable = ContextCompat.getDrawable(context, R.drawable.suggestion_separator);
|
Drawable separatorDrawable = ContextCompat.getDrawable(context, R.drawable.suggestion_separator);
|
||||||
|
|
@ -144,8 +158,10 @@ public class SuggestionsBar {
|
||||||
|
|
||||||
|
|
||||||
public void setRTL(boolean yes) {
|
public void setRTL(boolean yes) {
|
||||||
|
if (mView != null) {
|
||||||
mView.setLayoutDirection(yes ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
|
mView.setLayoutDirection(yes ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setSuggestions(List<String> newSuggestions, int initialSel, boolean containsGenerated) {
|
public void setSuggestions(List<String> newSuggestions, int initialSel, boolean containsGenerated) {
|
||||||
|
|
@ -275,6 +291,10 @@ public class SuggestionsBar {
|
||||||
* to set the selected index in the adapter.
|
* to set the selected index in the adapter.
|
||||||
*/
|
*/
|
||||||
private void scrollView() {
|
private void scrollView() {
|
||||||
|
if (mView == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (containsStem() && selectedIndex == 1) {
|
if (containsStem() && selectedIndex == 1) {
|
||||||
mView.scrollToPosition(0);
|
mView.scrollToPosition(0);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout
|
||||||
style="@style/TTheme.FullScreenContainer"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/full_screen_container">
|
style="@style/TTheme.FullScreenContainer">
|
||||||
|
|
||||||
<LinearLayout style="@style/TTheme.FullScreenContainer.SideBumper" android:id="@+id/numpad_bumper_left" />
|
<LinearLayout style="@style/TTheme.FullScreenContainer.SideBumper" android:id="@+id/bumper_left" />
|
||||||
|
|
||||||
<LinearLayout style="@style/TTheme.Numpad" android:id="@+id/numpad_container">
|
<LinearLayout style="@style/TTheme.Numpad" android:id="@+id/keyboard_container">
|
||||||
<View style="@style/TTheme.Keyboard.TopSeparator" />
|
<View style="@style/TTheme.Keyboard.TopSeparator" />
|
||||||
<include layout="@layout/panel_numpad_status_bar" />
|
<include layout="@layout/panel_numpad_status_bar" />
|
||||||
|
|
||||||
|
|
@ -22,6 +22,6 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout style="@style/TTheme.FullScreenContainer.SideBumper" android:id="@+id/numpad_bumper_right" />
|
<LinearLayout style="@style/TTheme.FullScreenContainer.SideBumper" android:id="@+id/bumper_right" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,14 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
style="@style/TTheme.FullScreenContainer">
|
||||||
style="@style/TTheme.MainSmall">
|
|
||||||
|
|
||||||
|
<LinearLayout style="@style/TTheme.FullScreenContainer.SideBumper" android:id="@+id/bumper_left" />
|
||||||
|
|
||||||
|
<LinearLayout style="@style/TTheme.MainSmall" android:id="@+id/keyboard_container">
|
||||||
<View style="@style/TTheme.Keyboard.TopSeparator" />
|
<View style="@style/TTheme.Keyboard.TopSeparator" />
|
||||||
|
<include layout="@layout/panel_small_status_bar" />
|
||||||
<FrameLayout
|
<include layout="@layout/panel_small_function_keys" android:id="@+id/main_soft_keys" />
|
||||||
style="@style/TTheme.MainSmall.StatusBar.Wrapper"
|
|
||||||
android:defaultFocusHighlightEnabled="false"
|
|
||||||
android:focusable="false"
|
|
||||||
android:focusableInTouchMode="false">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="@style/TTheme.MainSmall.StatusBar.Status"
|
|
||||||
android:id="@+id/status_bar"
|
|
||||||
android:defaultFocusHighlightEnabled="false"
|
|
||||||
android:focusable="false"
|
|
||||||
android:focusableInTouchMode="false"
|
|
||||||
tools:text="@tools:sample/lorem" />
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
style="@style/TTheme.MainSmall.StatusBar.SuggestionList"
|
|
||||||
android:id="@+id/suggestions_bar"
|
|
||||||
android:defaultFocusHighlightEnabled="false"
|
|
||||||
android:focusable="false"
|
|
||||||
android:focusableInTouchMode="false" />
|
|
||||||
|
|
||||||
</FrameLayout>
|
|
||||||
|
|
||||||
<include
|
|
||||||
layout="@layout/panel_small_function_keys"
|
|
||||||
android:id="@+id/main_soft_keys" />
|
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/panel_small_command_palette"
|
layout="@layout/panel_small_command_palette"
|
||||||
|
|
@ -42,5 +19,8 @@
|
||||||
layout="@layout/panel_small_text_editing"
|
layout="@layout/panel_small_text_editing"
|
||||||
android:id="@+id/text_editing_container"
|
android:id="@+id/text_editing_container"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout style="@style/TTheme.FullScreenContainer.SideBumper" android:id="@+id/bumper_right" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/main_soft_keys"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:id="@+id/main_soft_keys"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
|
||||||
25
app/src/main/res/layout/panel_small_status_bar.xml
Normal file
25
app/src/main/res/layout/panel_small_status_bar.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<FrameLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
style="@style/TTheme.MainSmall.StatusBar.Wrapper"
|
||||||
|
android:defaultFocusHighlightEnabled="false"
|
||||||
|
android:focusable="false"
|
||||||
|
android:focusableInTouchMode="false">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/TTheme.MainSmall.StatusBar.Status"
|
||||||
|
android:id="@+id/status_bar"
|
||||||
|
android:defaultFocusHighlightEnabled="false"
|
||||||
|
android:focusable="false"
|
||||||
|
android:focusableInTouchMode="false"
|
||||||
|
tools:text="@tools:sample/lorem" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
style="@style/TTheme.MainSmall.StatusBar.SuggestionList"
|
||||||
|
android:id="@+id/suggestions_bar"
|
||||||
|
android:defaultFocusHighlightEnabled="false"
|
||||||
|
android:focusable="false"
|
||||||
|
android:focusableInTouchMode="false" />
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
@ -190,4 +190,5 @@
|
||||||
<string name="punctuation_order_save">Запази подредбата</string>
|
<string name="punctuation_order_save">Запази подредбата</string>
|
||||||
<string name="punctuation_order_forbidden_char">Забранен символ:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Забранен символ:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Забранени символи:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Забранени символи:%1$s</string>
|
||||||
|
<string name="pref_category_geometry">Геометрия</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -178,4 +178,5 @@
|
||||||
<string name="punctuation_order_forbidden_char">Verbotenes Zeichen:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Verbotenes Zeichen:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Verbotene Zeichen:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Verbotene Zeichen:%1$s</string>
|
||||||
<string name="function_filter_suggestions_not_available">Das Filtern ist in dieser Sprache nicht möglich.</string>
|
<string name="function_filter_suggestions_not_available">Das Filtern ist in dieser Sprache nicht möglich.</string>
|
||||||
|
<string name="pref_category_geometry">Geometrie</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -188,4 +188,5 @@
|
||||||
<string name="punctuation_order_save">Guardar orden</string>
|
<string name="punctuation_order_save">Guardar orden</string>
|
||||||
<string name="punctuation_order_forbidden_char">Carácter prohibido:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Carácter prohibido:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Caracteres prohibidos:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Caracteres prohibidos:%1$s</string>
|
||||||
|
<string name="pref_category_geometry">Geometría</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -186,4 +186,5 @@
|
||||||
<string name="punctuation_order_save">Enregistrer l’ordre</string>
|
<string name="punctuation_order_save">Enregistrer l’ordre</string>
|
||||||
<string name="punctuation_order_forbidden_char">Caractère interdit:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Caractère interdit:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Caractères interdits:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Caractères interdits:%1$s</string>
|
||||||
|
<string name="pref_category_geometry">Géométrie</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -178,5 +178,6 @@
|
||||||
<string name="punctuation_order_forbidden_char">Carattere vietato:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Carattere vietato:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Caratteri vietati:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Caratteri vietati:%1$s</string>
|
||||||
<string name="function_filter_suggestions_not_available">Il filtraggio non è possibile in questa lingua.</string>
|
<string name="function_filter_suggestions_not_available">Il filtraggio non è possibile in questa lingua.</string>
|
||||||
|
<string name="pref_category_geometry">Geometria</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -191,4 +191,5 @@
|
||||||
<string name="punctuation_order_forbidden_char">תו אסור:%1$s</string>
|
<string name="punctuation_order_forbidden_char">תו אסור:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">תווים אסורים:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">תווים אסורים:%1$s</string>
|
||||||
<string name="function_filter_suggestions_not_available">לא ניתן לסנן בשפה זו.</string>
|
<string name="function_filter_suggestions_not_available">לא ניתן לסנן בשפה זו.</string>
|
||||||
|
<string name="pref_category_geometry">גיאומטריה</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -197,4 +197,5 @@
|
||||||
<string name="punctuation_order_save">Išsaugoti tvarką</string>
|
<string name="punctuation_order_save">Išsaugoti tvarką</string>
|
||||||
<string name="punctuation_order_forbidden_char">Draudžiamas simbolis:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Draudžiamas simbolis:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Draudžiami simboliai:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Draudžiami simboliai:%1$s</string>
|
||||||
|
<string name="pref_category_geometry">Geometrija</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -177,4 +177,5 @@
|
||||||
<string name="punctuation_order_forbidden_char">Verboden teken:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Verboden teken:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Verboden tekens:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Verboden tekens:%1$s</string>
|
||||||
<string name="function_filter_suggestions_not_available">Het filteren is niet mogelijk in deze taal.</string>
|
<string name="function_filter_suggestions_not_available">Het filteren is niet mogelijk in deze taal.</string>
|
||||||
|
<string name="pref_category_geometry">Geometrie</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -191,4 +191,5 @@
|
||||||
<string name="punctuation_order_forbidden_char">Caractere proibido:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Caractere proibido:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Caracteres proibidos:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Caracteres proibidos:%1$s</string>
|
||||||
<string name="function_filter_suggestions_not_available">Não é possível filtrar neste idioma.</string>
|
<string name="function_filter_suggestions_not_available">Não é possível filtrar neste idioma.</string>
|
||||||
|
<string name="pref_category_geometry">Geometria</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -188,4 +188,5 @@
|
||||||
<string name="punctuation_order_save">Сохранить порядок</string>
|
<string name="punctuation_order_save">Сохранить порядок</string>
|
||||||
<string name="punctuation_order_forbidden_char">Запрещённый символ:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Запрещённый символ:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Запрещённые символы:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Запрещённые символы:%1$s</string>
|
||||||
|
<string name="pref_category_geometry">Геометрия</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -191,4 +191,5 @@
|
||||||
<string name="punctuation_order_save">Sıralamayı kaydet</string>
|
<string name="punctuation_order_save">Sıralamayı kaydet</string>
|
||||||
<string name="punctuation_order_forbidden_char">Yasaklı karakter:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Yasaklı karakter:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Yasaklı karakterler:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Yasaklı karakterler:%1$s</string>
|
||||||
|
<string name="pref_category_geometry">Geometri</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -199,4 +199,5 @@
|
||||||
<string name="punctuation_order_save">Зберегти порядок</string>
|
<string name="punctuation_order_save">Зберегти порядок</string>
|
||||||
<string name="punctuation_order_forbidden_char">Заборонений символ:%1$s</string>
|
<string name="punctuation_order_forbidden_char">Заборонений символ:%1$s</string>
|
||||||
<string name="punctuation_order_forbidden_chars">Заборонені символи:%1$s</string>
|
<string name="punctuation_order_forbidden_chars">Заборонені символи:%1$s</string>
|
||||||
|
<string name="pref_category_geometry">Геометрія</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@
|
||||||
<string name="pref_category_abc_mode">ABC Mode</string>
|
<string name="pref_category_abc_mode">ABC Mode</string>
|
||||||
<string name="pref_category_appearance">Appearance</string>
|
<string name="pref_category_appearance">Appearance</string>
|
||||||
<string name="pref_category_custom_words">Added Words</string>
|
<string name="pref_category_custom_words">Added Words</string>
|
||||||
|
<string name="pref_category_geometry">Geometry</string>
|
||||||
<string name="pref_category_debug_options" translatable="false">Debug Options</string>
|
<string name="pref_category_debug_options" translatable="false">Debug Options</string>
|
||||||
<string name="pref_category_delete_words">Delete Added Words</string>
|
<string name="pref_category_delete_words">Delete Added Words</string>
|
||||||
<string name="pref_category_function_keys">Select Hotkeys</string>
|
<string name="pref_category_function_keys">Select Hotkeys</string>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,21 @@
|
||||||
<item name="windowNoTitle">true</item> <!-- hide some weird floating rectangle above the dialog -->
|
<item name="windowNoTitle">true</item> <!-- hide some weird floating rectangle above the dialog -->
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="TTheme.FullScreenContainer" parent="">
|
||||||
|
<item name="android:layout_width">match_parent</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:layoutDirection">ltr</item>
|
||||||
|
<item name="android:orientation">horizontal</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="TTheme.FullScreenContainer.SideBumper" parent="">
|
||||||
|
<item name="android:layout_height">1dp</item>
|
||||||
|
<item name="android:layout_width">0dp</item>
|
||||||
|
<item name="android:layout_weight">0</item>
|
||||||
|
<item name="android:layoutDirection">ltr</item>
|
||||||
|
<item name="android:orientation">horizontal</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="TTheme.Preferences" parent="Theme.AppCompat.DayNight" />
|
<style name="TTheme.Preferences" parent="Theme.AppCompat.DayNight" />
|
||||||
|
|
||||||
<style name="TTheme.Keyboard" parent="TTheme">
|
<style name="TTheme.Keyboard" parent="TTheme">
|
||||||
|
|
@ -30,8 +45,9 @@
|
||||||
*******************************************-->
|
*******************************************-->
|
||||||
|
|
||||||
<style name="TTheme.MainSmall" parent="TTheme.Keyboard">
|
<style name="TTheme.MainSmall" parent="TTheme.Keyboard">
|
||||||
<item name="android:layout_width">match_parent</item>
|
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:layout_width">0dp</item>
|
||||||
|
<item name="android:layout_weight">100</item>
|
||||||
<item name="android:orientation">vertical</item>
|
<item name="android:orientation">vertical</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
@ -140,21 +156,6 @@
|
||||||
Numpad
|
Numpad
|
||||||
*******************************************-->
|
*******************************************-->
|
||||||
|
|
||||||
<style name="TTheme.FullScreenContainer" parent="">
|
|
||||||
<item name="android:layout_width">match_parent</item>
|
|
||||||
<item name="android:layout_height">wrap_content</item>
|
|
||||||
<item name="android:layoutDirection">ltr</item>
|
|
||||||
<item name="android:orientation">horizontal</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="TTheme.FullScreenContainer.SideBumper" parent="">
|
|
||||||
<item name="android:layout_height">1dp</item>
|
|
||||||
<item name="android:layout_width">0dp</item>
|
|
||||||
<item name="android:layout_weight">0</item>
|
|
||||||
<item name="android:layoutDirection">ltr</item>
|
|
||||||
<item name="android:orientation">horizontal</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<!-- The keyboard itself -->
|
<!-- The keyboard itself -->
|
||||||
<style name="TTheme.Numpad" parent="TTheme.Keyboard">
|
<style name="TTheme.Numpad" parent="TTheme.Keyboard">
|
||||||
<item name="android:layout_height">wrap_content</item>
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
|
|
||||||
|
|
@ -14,18 +14,18 @@
|
||||||
app:key="pref_layout_type"
|
app:key="pref_layout_type"
|
||||||
app:title="@string/pref_layout" />
|
app:title="@string/pref_layout" />
|
||||||
|
|
||||||
<PreferenceCategory app:title="@string/pref_layout_numpad">
|
<PreferenceCategory app:title="@string/pref_category_geometry">
|
||||||
<DropDownPreference
|
<DropDownPreference
|
||||||
app:key="pref_numpad_key_height"
|
app:key="pref_numpad_alignment"
|
||||||
app:title="@string/pref_numpad_key_height" />
|
app:title="@string/pref_numpad_alignment" />
|
||||||
|
|
||||||
<DropDownPreference
|
<DropDownPreference
|
||||||
app:key="pref_numpad_width"
|
app:key="pref_numpad_width"
|
||||||
app:title="@string/pref_numpad_width" />
|
app:title="@string/pref_numpad_width" />
|
||||||
|
|
||||||
<DropDownPreference
|
<DropDownPreference
|
||||||
app:key="pref_numpad_alignment"
|
app:key="pref_numpad_key_height"
|
||||||
app:title="@string/pref_numpad_alignment" />
|
app:title="@string/pref_numpad_key_height" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory app:title="@string/pref_category_hacks">
|
<PreferenceCategory app:title="@string/pref_category_hacks">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue