diff options
| author | Menny Even Danan <menny@evendanan.net> | 2020-06-08 13:35:09 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-08 13:35:09 +0000 |
| commit | 08230eccbb99cf698d8fb0fcf6f0540edeb1ce9e (patch) | |
| tree | a7254f6fe6f06e076ffcffb24164fdb34dda783d | |
| parent | 675a4f9c0b36cde7884bed5dea1d4c1922021546 (diff) | |
| parent | a62947e6a71f121c6518d366ae148cb2732c3b30 (diff) | |
| download | AnySoftKeyboard-08230eccbb99cf698d8fb0fcf6f0540edeb1ce9e.tar.gz AnySoftKeyboard-08230eccbb99cf698d8fb0fcf6f0540edeb1ce9e.tar.bz2 | |
Merge pull request #2317 from lubenard/PR_increment_size_hint_letters
Increment size hint letters
7 files changed, 83 insertions, 1 deletions
diff --git a/ime/app/src/main/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBase.java b/ime/app/src/main/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBase.java index 630d326f4..d71a4110e 100644 --- a/ime/app/src/main/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBase.java +++ b/ime/app/src/main/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBase.java @@ -156,6 +156,7 @@ public class AnyKeyboardViewBase extends View implements InputViewBinder, Pointe private float mKeyboardNameTextSize; private FontMetrics mKeyboardNameFontMetrics; private float mHintTextSize; + float mHintTextSizeMultiplier; private FontMetrics mHintTextFontMetrics; private int mThemeHintLabelAlign; private int mThemeHintLabelVAlign; @@ -224,6 +225,7 @@ public class AnyKeyboardViewBase extends View implements InputViewBinder, Pointe mNextSymbolsKeyboardName = getResources().getString(R.string.change_symbols_regular); final RxSharedPrefs rxSharedPrefs = AnyApplication.prefs(context); + mDisposables.add( rxSharedPrefs .getBoolean( @@ -332,6 +334,16 @@ public class AnyKeyboardViewBase extends View implements InputViewBinder, Pointe }, GenericOnError.onError("Failed to getKeyboardHeightFactor"))); + mDisposables.add( + rxSharedPrefs + .getString( + R.string.settings_key_hint_size, + R.string.settings_key_hint_size_default) + .asObservable() + .subscribe( + this::updatePrefSettingsHintTextSizeFactor, + GenericOnError.onError("failed to get settings_key_hint_size"))); + AnimationsLevel.createPrefsObservable(context).subscribe(mAnimationLevelSubject); mDisposables.add( @@ -1430,6 +1442,7 @@ public class AnyKeyboardViewBase extends View implements InputViewBinder, Pointe } if (drawHintText + && (mHintTextSizeMultiplier > 0) && ((key.popupCharacters != null && key.popupCharacters.length() > 0) || (key.popupResId != 0) || (key.longPressCode != 0))) { @@ -1466,7 +1479,7 @@ public class AnyKeyboardViewBase extends View implements InputViewBinder, Pointe // now draw hint paint.setTypeface(Typeface.DEFAULT); paint.setColor(themeResourcesHolder.getHintTextColor()); - paint.setTextSize(mHintTextSize); + paint.setTextSize(mHintTextSize * mHintTextSizeMultiplier); // get the hint text font metrics so that we know the size // of the hint when // we try to position the main label (to try to make sure @@ -2164,6 +2177,23 @@ public class AnyKeyboardViewBase extends View implements InputViewBinder, Pointe } } + private void updatePrefSettingsHintTextSizeFactor(final String overrideValue) { + switch (overrideValue) { + case "none": + mHintTextSizeMultiplier = 0f; + break; + case "small": + mHintTextSizeMultiplier = 0.7f; + break; + case "big": + mHintTextSizeMultiplier = 1.3f; + break; + default: + mHintTextSizeMultiplier = 1; + break; + } + } + protected static class KeyPressTimingHandler extends Handler { private static final int MSG_REPEAT_KEY = 3; diff --git a/ime/app/src/main/res/values/arrays.xml b/ime/app/src/main/res/values/arrays.xml index dab4a7374..257484746 100644 --- a/ime/app/src/main/res/values/arrays.xml +++ b/ime/app/src/main/res/values/arrays.xml @@ -59,6 +59,20 @@ <item>upper</item> </string-array> + <string-array name="settings_key_hint_size_names"> + <item>@string/settings_key_hint_size_none</item> + <item>@string/settings_key_hint_size_small</item> + <item>@string/settings_key_hint_size_normal</item> + <item>@string/settings_key_hint_size_big</item> + </string-array> + + <string-array name="settings_key_hint_size_values"> + <item>none</item> + <item>small</item> + <item>normal</item> + <item>big</item> + </string-array> + <string-array name="swipe_action_types_values"> <item>@string/swipe_action_value_none</item> <item>@string/swipe_action_value_next_alphabet</item> diff --git a/ime/app/src/main/res/values/settings_defaults_dont_translate.xml b/ime/app/src/main/res/values/settings_defaults_dont_translate.xml index 02864448d..322c90580 100644 --- a/ime/app/src/main/res/values/settings_defaults_dont_translate.xml +++ b/ime/app/src/main/res/values/settings_defaults_dont_translate.xml @@ -117,6 +117,8 @@ <string name="settings_default_theme_case_type_override">theme</string> + <string name="settings_key_hint_size_default">normal</string> + <integer name="settings_default_min_word_length_for_suggestion">2</integer> <string name="settings_default_power_save_mode_value">on_low_battery</string> diff --git a/ime/app/src/main/res/values/settings_keys_dont_translate.xml b/ime/app/src/main/res/values/settings_keys_dont_translate.xml index b0bf09824..47dd07ff8 100644 --- a/ime/app/src/main/res/values/settings_keys_dont_translate.xml +++ b/ime/app/src/main/res/values/settings_keys_dont_translate.xml @@ -362,6 +362,8 @@ <string name="settings_key_theme_case_type_override">settings_key_theme_case_type_override</string> + <string name="settings_key_hint_size">settings_key_hint_size</string> + <string name="settings_key_landscape_keyboard_height_factor">zoom_factor_keys_in_landscape</string> <string name="settings_key_portrait_keyboard_height_factor">zoom_factor_keys_in_portrait</string> diff --git a/ime/app/src/main/res/values/strings.xml b/ime/app/src/main/res/values/strings.xml index 4729e46f7..8cb9f4702 100644 --- a/ime/app/src/main/res/values/strings.xml +++ b/ime/app/src/main/res/values/strings.xml @@ -410,6 +410,7 @@ <string name="key_press_preview_popup_off_summary">Do not show popup upon key-press</string> <string name="zoom_factor_keys_in_portrait">Keys height factor in portrait mode</string> <string name="zoom_factor_keys_in_landscape">Keys height factor in landscape mode</string> + <string name="insert_space_after_word_suggestion_selection">Space after candidate pick</string> <string name="insert_space_after_word_suggestion_selection_on_summary">Insert space after word suggestion select @@ -877,6 +878,13 @@ <string name="theme_case_type_override_lower">Always lowercase</string> <string name="theme_case_type_override_upper">Always uppercase</string> + <string name="settings_hint_size">Hint label size</string> + <string name="settings_key_hint_size_summary">Set hint size in the keyboard. Currently, %s</string> + <string name="settings_key_hint_size_none">None</string> + <string name="settings_key_hint_size_small">Small</string> + <string name="settings_key_hint_size_normal">Normal</string> + <string name="settings_key_hint_size_big">Big</string> + <string name="theme_case_type_override_title">Keyboard letter-case override</string> <string name="theme_case_type_override_summary">How to determine letters-case in the keyboard view. Currently, %s</string> <string name="take_a_while_progress_message">This might take a while…</string> diff --git a/ime/app/src/main/res/xml/prefs_keyboard_theme_tweaks.xml b/ime/app/src/main/res/xml/prefs_keyboard_theme_tweaks.xml index 71795108e..67c3717d4 100644 --- a/ime/app/src/main/res/xml/prefs_keyboard_theme_tweaks.xml +++ b/ime/app/src/main/res/xml/prefs_keyboard_theme_tweaks.xml @@ -77,6 +77,19 @@ android:summaryOn="@string/show_keyboard_name_on_summary" android:title="@string/show_keyboard_name_text" /> + <android.support.v7.preference.ListPreference + android:autoText="false" + android:capitalize="none" + android:title="@string/settings_hint_size" + android:entries="@array/settings_key_hint_size_names" + android:entryValues="@array/settings_key_hint_size_values" + android:defaultValue="@string/settings_key_hint_size_default" + android:dialogTitle="@string/settings_hint_size" + android:key="@string/settings_key_hint_size" + android:summary="@string/settings_key_hint_size_summary" + android:persistent="true" + android:singleLine="true"/> + <EditTextPreference android:autoText="false" android:capitalize="none" @@ -100,4 +113,5 @@ android:persistent="true" android:singleLine="true" android:title="@string/zoom_factor_keys_in_landscape" /> + </android.support.v7.preference.PreferenceScreen> diff --git a/ime/app/src/test/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBaseTest.java b/ime/app/src/test/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBaseTest.java index 4f1f032de..165b79875 100644 --- a/ime/app/src/test/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBaseTest.java +++ b/ime/app/src/test/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBaseTest.java @@ -344,6 +344,18 @@ public class AnyKeyboardViewBaseTest { Assert.assertEquals("F", mUnderTest.adjustLabelToShiftState(fKey)); } + @Test + public void testHintSizeOption() { + SharedPrefsHelper.setPrefsValue(R.string.settings_key_hint_size, "big"); + Assert.assertEquals(1.3, mUnderTest.mHintTextSizeMultiplier, 0.1); + + SharedPrefsHelper.setPrefsValue(R.string.settings_key_hint_size, "small"); + Assert.assertEquals(0.7, mUnderTest.mHintTextSizeMultiplier, 0.1); + + SharedPrefsHelper.setPrefsValue(R.string.settings_key_hint_size, "none"); + Assert.assertEquals(0, mUnderTest.mHintTextSizeMultiplier, 0); + } + @Nullable protected AnyKeyboard.AnyKey findKey(int codeToFind) { final int index = findKeyIndex(codeToFind); |
