aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ime/app/src/main/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBase.java32
-rw-r--r--ime/app/src/main/res/values/arrays.xml14
-rw-r--r--ime/app/src/main/res/values/settings_defaults_dont_translate.xml2
-rw-r--r--ime/app/src/main/res/values/settings_keys_dont_translate.xml2
-rw-r--r--ime/app/src/main/res/values/strings.xml8
-rw-r--r--ime/app/src/main/res/xml/prefs_keyboard_theme_tweaks.xml14
-rw-r--r--ime/app/src/test/java/com/anysoftkeyboard/keyboards/views/AnyKeyboardViewBaseTest.java12
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);