diff options
author | 2014-10-21 17:03:05 +0900 | |
---|---|---|
committer | 2014-10-30 11:45:41 +0900 | |
commit | bb9400aebc4cb0291b4f0208ecbc9ddc01dc79e1 (patch) | |
tree | e41760fb57991abaf33fb2ec077e0155e6c5e9b9 /java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java | |
parent | 80980574acfef74f9392da4fdbcba64d911cb66f (diff) | |
download | latinime-bb9400aebc4cb0291b4f0208ecbc9ddc01dc79e1.tar.gz latinime-bb9400aebc4cb0291b4f0208ecbc9ddc01dc79e1.tar.xz latinime-bb9400aebc4cb0291b4f0208ecbc9ddc01dc79e1.zip |
Add a preference to resize the keyboard height.
The keyboard height is controlled by a slider in the debug preferences.
Without access to debug preferences, this change is a no-op.
Bug: 6867494
Change-Id: I984064ed1cab752876615f5ed582818474d6041b
Diffstat (limited to 'java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java index 2e5c3c479..068f56df1 100644 --- a/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java @@ -89,6 +89,8 @@ public final class DebugSettingsFragment extends SubScreenFragment defaultKeyPreviewDismissEndScale); setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE, defaultKeyPreviewDismissEndScale); + setupKeyboardHeight( + DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, SettingsValues.DEFAULT_SIZE_SCALE); mServiceNeedsRestart = false; mDebugMode = (TwoStatePreference) findPreference(DebugSettings.PREF_DEBUG_MODE); @@ -250,4 +252,51 @@ public final class DebugSettingsFragment extends SubScreenFragment public void feedbackValue(final int value) {} }); } + + private void setupKeyboardHeight(final String prefKey, final float defaultValue) { + final SharedPreferences prefs = getSharedPreferences(); + final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(prefKey); + if (pref == null) { + return; + } + pref.setInterface(new SeekBarDialogPreference.ValueProxy() { + private static final float PERCENTAGE_FLOAT = 100.0f; + private float getValueFromPercentage(final int percentage) { + return percentage / PERCENTAGE_FLOAT; + } + + private int getPercentageFromValue(final float floatValue) { + return (int)(floatValue * PERCENTAGE_FLOAT); + } + + @Override + public void writeValue(final int value, final String key) { + prefs.edit().putFloat(key, getValueFromPercentage(value)).apply(); + } + + @Override + public void writeDefaultValue(final String key) { + prefs.edit().remove(key).apply(); + } + + @Override + public int readValue(final String key) { + return getPercentageFromValue( + Settings.readKeyboardHeight(prefs, key, defaultValue)); + } + + @Override + public int readDefaultValue(final String key) { + return getPercentageFromValue(defaultValue); + } + + @Override + public String getValueText(final int value) { + return String.format(Locale.ROOT, "%d%%", value); + } + + @Override + public void feedbackValue(final int value) {} + }); + } } |