diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java index 331d7177..b9ee10e4 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java @@ -263,32 +263,38 @@ public class SoftKey extends androidx.appcompat.widget.AppCompatButton implement if (title == null) { return; - } else if (subtitle == null) { - setText(title); - return; } - int titleLength = title.length(); - SpannableStringBuilder sb = new SpannableStringBuilder(title); - sb.append('\n'); - sb.append(subtitle); - - float padding = SettingsStore.SOFT_KEY_COMPLEX_LABEL_TITLE_RELATIVE_SIZE; - if (getTitleRelativeSize() == SettingsStore.SOFT_KEY_COMPLEX_LABEL_ARABIC_TITLE_RELATIVE_SIZE) { - padding /= 10; + if (subtitle != null) { + sb.append('\n'); + sb.append(subtitle); } // title styles - sb.setSpan(new RelativeSizeSpan(getTitleRelativeSize()), 0, titleLength, Spanned.SPAN_INCLUSIVE_INCLUSIVE); - if (!new Text(title).startsWithGraphic()) { + int titleLength = title.length(); + float titleRelativeSize = subtitle == null ? getSubTitleRelativeSize() : getTitleRelativeSize(); + + sb.setSpan(new RelativeSizeSpan(titleRelativeSize), 0, titleLength, Spanned.SPAN_INCLUSIVE_INCLUSIVE); + if (subtitle != null && !new Text(title).startsWithGraphic()) { sb.setSpan(new StyleSpan(Typeface.ITALIC), 0, titleLength, Spanned.SPAN_EXCLUSIVE_INCLUSIVE); } + if (isTitleDisabled) { sb.setSpan(new ForegroundColorSpan(0x44000000), 0, titleLength, Spanned.SPAN_INCLUSIVE_INCLUSIVE); } + if (subtitle == null) { + setText(sb); + return; + } + // subtitle styles + float padding = SettingsStore.SOFT_KEY_COMPLEX_LABEL_TITLE_RELATIVE_SIZE; + if (titleRelativeSize == SettingsStore.SOFT_KEY_COMPLEX_LABEL_ARABIC_TITLE_RELATIVE_SIZE) { + padding /= 10; + } + sb.setSpan(new RelativeSizeSpan(padding), titleLength, titleLength + 1, Spanned.SPAN_INCLUSIVE_INCLUSIVE); sb.setSpan(new RelativeSizeSpan(getSubTitleRelativeSize()), titleLength + 1, sb.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyRF3.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyRF3.java index d9377364..6c0e3ad5 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyRF3.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyRF3.java @@ -10,21 +10,35 @@ public class SoftKeyRF3 extends SoftKey { public SoftKeyRF3(Context context, AttributeSet attrs) { super(context, attrs); } public SoftKeyRF3(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } - @Override protected float getTitleRelativeSize() { return super.getTitleRelativeSize() / 0.85f; } - @Override protected float getSubTitleRelativeSize() { return super.getSubTitleRelativeSize() / 0.85f; } private boolean isVoiceInputMissing() { return tt9 != null && tt9.isVoiceInputMissing(); } + private boolean isTextEditingMissing() { return tt9 != null && tt9.isInputLimited(); } + private boolean isTextEditingActive() { return tt9 != null && tt9.isTextEditingActive(); } + + @Override + protected float getTitleRelativeSize() { + return super.getTitleRelativeSize() / 0.85f; + } + + + @Override + protected float getSubTitleRelativeSize() { + float scale = (isTextEditingMissing() && !isVoiceInputMissing()) || isTextEditingActive() ? 0.85f : 0.96f; + return super.getSubTitleRelativeSize() / scale; + } + + @Override protected void handleHold() { preventRepeat(); @@ -36,6 +50,7 @@ public class SoftKeyRF3 extends SoftKey { tt9.toggleVoiceInput(); } + @Override protected boolean handleRelease() { if (!validateTT9Handler() && isTextEditingMissing() && isVoiceInputMissing()) { @@ -53,6 +68,7 @@ public class SoftKeyRF3 extends SoftKey { return true; } + @Override protected String getTitle() { if (isTextEditingActive()) { @@ -66,6 +82,7 @@ public class SoftKeyRF3 extends SoftKey { return getContext().getString(R.string.virtual_key_text_editing).toUpperCase(); } + @Override protected String getSubTitle() { if (isTextEditingActive() || isTextEditingMissing() || isVoiceInputMissing()) { @@ -75,6 +92,7 @@ public class SoftKeyRF3 extends SoftKey { return getContext().getString(R.string.virtual_key_text_editing).toUpperCase(); } + @Override public void render() { super.render(); diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyShift.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyShift.java index 747dded0..d761aec3 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyShift.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyShift.java @@ -29,7 +29,7 @@ public class SoftKeyShift extends SoftKey { @Override public void render() { - setTextSize(30); + setTextSize(36); setTypeface(Typeface.DEFAULT_BOLD); super.render(); setEnabled(tt9 != null && !tt9.isVoiceInputActive() && !tt9.isInputModePhone() && !tt9.isNumericModeSigned()); diff --git a/app/src/main/res/layout/panel_numpad_text_editing_row_1.xml b/app/src/main/res/layout/panel_numpad_text_editing_row_1.xml index 5bad1b07..f9427ccb 100644 --- a/app/src/main/res/layout/panel_numpad_text_editing_row_1.xml +++ b/app/src/main/res/layout/panel_numpad_text_editing_row_1.xml @@ -8,7 +8,6 @@ android:layout_weight="1" android:drawableBottom="@drawable/ic_dpad_left" android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" - android:textSize="@dimen/soft_key_drawable_title_size" android:visibility="gone" /> diff --git a/app/src/main/res/layout/panel_numpad_text_editing_row_2.xml b/app/src/main/res/layout/panel_numpad_text_editing_row_2.xml index 92ad2847..1811e10f 100644 --- a/app/src/main/res/layout/panel_numpad_text_editing_row_2.xml +++ b/app/src/main/res/layout/panel_numpad_text_editing_row_2.xml @@ -8,7 +8,6 @@ android:layout_weight="1" android:drawableBottom="@drawable/ic_txt_word_back" android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" - android:textSize="@dimen/soft_key_drawable_title_size" android:visibility="gone" /> diff --git a/app/src/main/res/layout/panel_numpad_text_editing_row_3.xml b/app/src/main/res/layout/panel_numpad_text_editing_row_3.xml index eee0f966..bac77ee7 100644 --- a/app/src/main/res/layout/panel_numpad_text_editing_row_3.xml +++ b/app/src/main/res/layout/panel_numpad_text_editing_row_3.xml @@ -8,7 +8,6 @@ android:layout_weight="1" android:drawableBottom="@drawable/ic_txt_cut" android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" - android:textSize="@dimen/soft_key_drawable_title_size" android:visibility="gone" /> @@ -31,6 +29,5 @@ android:layout_weight="1" android:drawableBottom="@drawable/ic_txt_paste" android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" - android:textSize="@dimen/soft_key_drawable_title_size" android:visibility="gone" /> diff --git a/app/src/main/res/layout/panel_small_text_editing.xml b/app/src/main/res/layout/panel_small_text_editing.xml index 8edece53..d846ce22 100644 --- a/app/src/main/res/layout/panel_small_text_editing.xml +++ b/app/src/main/res/layout/panel_small_text_editing.xml @@ -14,8 +14,7 @@ android:layout_height="match_parent" android:layout_weight="1" android:drawableBottom="@drawable/ic_dpad_left" - android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" - android:textSize="@dimen/soft_key_drawable_title_size" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> + android:paddingBottom="@dimen/soft_key_drawable_bottom_padding" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index e73cf4dd..2db40fc2 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -9,7 +9,6 @@ 44dp 24sp 6dp - 12sp 30dp