aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
diff options
context:
space:
mode:
authorAndy Wang <andywang@google.com>2014-10-21 17:03:05 +0900
committerAndy Wang <andywang@google.com>2014-10-30 11:45:41 +0900
commitbb9400aebc4cb0291b4f0208ecbc9ddc01dc79e1 (patch)
treee41760fb57991abaf33fb2ec077e0155e6c5e9b9 /java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
parent80980574acfef74f9392da4fdbcba64d911cb66f (diff)
downloadlatinime-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.java49
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) {}
+ });
+ }
}