diff options
author | 2013-06-18 15:54:37 +0900 | |
---|---|---|
committer | 2013-06-18 18:27:17 +0900 | |
commit | 3be8263035b69226aba90fe1f1e4e4c3484ffe3d (patch) | |
tree | 733760bdc7f538c1b657bddb0c4f0186b6a8fe98 /java | |
parent | 286877b3afc6309b70c5216f05b94729aeb844f3 (diff) | |
download | latinime-3be8263035b69226aba90fe1f1e4e4c3484ffe3d.tar.gz latinime-3be8263035b69226aba90fe1f1e4e4c3484ffe3d.tar.xz latinime-3be8263035b69226aba90fe1f1e4e4c3484ffe3d.zip |
Get value text from ValueProxy
As a preparation to show "system default" in the settings. LatinIME
can't know the actual system default value.
Bug: 9468462
Change-Id: I0b7898d1ca29ded7a619dd636d2ad16eb0db292e
Diffstat (limited to 'java')
-rw-r--r-- | java/res/values/attrs.xml | 1 | ||||
-rw-r--r-- | java/res/xml/prefs.xml | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SeekBarDialogPreference.java | 39 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SettingsFragment.java | 15 |
4 files changed, 31 insertions, 26 deletions
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 80bf704db..c31831747 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -439,7 +439,6 @@ </declare-styleable> <declare-styleable name="SeekBarDialogPreference"> - <attr name="valueFormatText" format="reference" /> <attr name="maxValue" format="integer" /> <attr name="minValue" format="integer" /> <attr name="stepValue" format="integer" /> diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml index 51e3420e9..d77adcef9 100644 --- a/java/res/xml/prefs.xml +++ b/java/res/xml/prefs.xml @@ -170,14 +170,12 @@ <com.android.inputmethod.latin.SeekBarDialogPreference android:key="pref_key_longpress_timeout" android:title="@string/prefs_key_longpress_timeout_settings" - latin:valueFormatText="@string/abbreviation_unit_milliseconds" latin:minValue="@integer/config_min_longpress_timeout" latin:maxValue="@integer/config_max_longpress_timeout" latin:stepValue="@integer/config_longpress_timeout_step" /> <com.android.inputmethod.latin.SeekBarDialogPreference android:key="pref_vibration_duration_settings" android:title="@string/prefs_keypress_vibration_duration_settings" - latin:valueFormatText="@string/abbreviation_unit_milliseconds" latin:maxValue="@integer/config_max_vibration_duration" /> <com.android.inputmethod.latin.SeekBarDialogPreference android:key="pref_keypress_sound_volume" diff --git a/java/src/com/android/inputmethod/latin/SeekBarDialogPreference.java b/java/src/com/android/inputmethod/latin/SeekBarDialogPreference.java index 3ea9fedd7..44065ff33 100644 --- a/java/src/com/android/inputmethod/latin/SeekBarDialogPreference.java +++ b/java/src/com/android/inputmethod/latin/SeekBarDialogPreference.java @@ -33,10 +33,10 @@ public final class SeekBarDialogPreference extends DialogPreference public int readDefaultValue(final String key); public void writeValue(final int value, final String key); public void writeDefaultValue(final String key); + public String getValueText(final int value); public void feedbackValue(final int value); } - private final int mValueFormatResId; private final int mMaxValue; private final int mMinValue; private final int mStepValue; @@ -50,7 +50,6 @@ public final class SeekBarDialogPreference extends DialogPreference super(context, attrs); final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.SeekBarDialogPreference, 0, 0); - mValueFormatResId = a.getResourceId(R.styleable.SeekBarDialogPreference_valueFormatText, 0); mMaxValue = a.getInt(R.styleable.SeekBarDialogPreference_maxValue, 0); mMinValue = a.getInt(R.styleable.SeekBarDialogPreference_minValue, 0); mStepValue = a.getInt(R.styleable.SeekBarDialogPreference_stepValue, 0); @@ -60,15 +59,8 @@ public final class SeekBarDialogPreference extends DialogPreference public void setInterface(final ValueProxy proxy) { mValueProxy = proxy; - setSummary(getValueText(clipValue(proxy.readValue(getKey())))); - } - - private String getValueText(final int value) { - if (mValueFormatResId == 0) { - return Integer.toString(value); - } else { - return getContext().getString(mValueFormatResId, value); - } + final int value = mValueProxy.readValue(getKey()); + setSummary(mValueProxy.getValueText(value)); } @Override @@ -101,16 +93,11 @@ public final class SeekBarDialogPreference extends DialogPreference return clipValue(getValueFromProgress(progress)); } - private void setValue(final int value, final boolean fromUser) { - mValueView.setText(getValueText(value)); - if (!fromUser) { - mSeekBar.setProgress(getProgressFromValue(value)); - } - } - @Override protected void onBindDialogView(final View view) { - setValue(clipValue(mValueProxy.readValue(getKey())), false /* fromUser */); + final int value = mValueProxy.readValue(getKey()); + mValueView.setText(mValueProxy.getValueText(value)); + mSeekBar.setProgress(getProgressFromValue(clipValue(value))); } @Override @@ -125,13 +112,15 @@ public final class SeekBarDialogPreference extends DialogPreference super.onClick(dialog, which); final String key = getKey(); if (which == DialogInterface.BUTTON_NEUTRAL) { - setValue(clipValue(mValueProxy.readDefaultValue(key)), false /* fromUser */); + final int value = mValueProxy.readDefaultValue(key); + setSummary(mValueProxy.getValueText(value)); mValueProxy.writeDefaultValue(key); return; } if (which == DialogInterface.BUTTON_POSITIVE) { - setSummary(mValueView.getText()); - mValueProxy.writeValue(getClippedValueFromProgress(mSeekBar.getProgress()), key); + final int value = getClippedValueFromProgress(mSeekBar.getProgress()); + setSummary(mValueProxy.getValueText(value)); + mValueProxy.writeValue(value, key); return; } } @@ -139,7 +128,11 @@ public final class SeekBarDialogPreference extends DialogPreference @Override public void onProgressChanged(final SeekBar seekBar, final int progress, final boolean fromUser) { - setValue(getClippedValueFromProgress(progress), fromUser); + final int value = getClippedValueFromProgress(progress); + mValueView.setText(mValueProxy.getValueText(value)); + if (!fromUser) { + mSeekBar.setProgress(getProgressFromValue(value)); + } } @Override diff --git a/java/src/com/android/inputmethod/latin/SettingsFragment.java b/java/src/com/android/inputmethod/latin/SettingsFragment.java index 1fad765d7..9cc178598 100644 --- a/java/src/com/android/inputmethod/latin/SettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/SettingsFragment.java @@ -364,6 +364,11 @@ public final class SettingsFragment extends InputMethodSettingsFragment public void feedbackValue(final int value) { AudioAndHapticFeedbackManager.getInstance().vibrate(value); } + + @Override + public String getValueText(final int value) { + return res.getString(R.string.abbreviation_unit_milliseconds, value); + } }); } @@ -396,6 +401,11 @@ public final class SettingsFragment extends InputMethodSettingsFragment } @Override + public String getValueText(final int value) { + return res.getString(R.string.abbreviation_unit_milliseconds, value); + } + + @Override public void feedbackValue(final int value) {} }); } @@ -439,6 +449,11 @@ public final class SettingsFragment extends InputMethodSettingsFragment } @Override + public String getValueText(final int value) { + return Integer.toString(value); + } + + @Override public void feedbackValue(final int value) { am.playSoundEffect( AudioManager.FX_KEYPRESS_STANDARD, getValueFromPercentage(value)); |