diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin/SettingsFragment.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/SettingsFragment.java | 58 |
1 files changed, 48 insertions, 10 deletions
diff --git a/java/src/com/android/inputmethod/latin/SettingsFragment.java b/java/src/com/android/inputmethod/latin/SettingsFragment.java index 507a37b7c..6a4371835 100644 --- a/java/src/com/android/inputmethod/latin/SettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/SettingsFragment.java @@ -180,7 +180,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment }); mKeypressVibrationDurationSettingsPref.setSummary( res.getString(R.string.settings_keypress_vibration_duration, - Settings.readVibrationDuration(prefs, res))); + Settings.readKeypressVibrationDuration(prefs, res))); } mKeypressSoundVolumeSettingsPref = @@ -308,10 +308,29 @@ public final class SettingsFragment extends InputMethodSettingsFragment final Context context = getActivity(); final PreferenceScreen settingsPref = mKeypressVibrationDurationSettingsPref; final SeekBarDialog.Listener listener = new SeekBarDialog.Adapter() { + private void writePreference(final SharedPreferences sp, final int value) { + sp.edit().putInt(Settings.PREF_VIBRATION_DURATION_SETTINGS, value).apply(); + } + + private void feedbackSettingsValue(final int value) { + AudioAndHapticFeedbackManager.getInstance().vibrate(value); + } + @Override public void onPositiveButtonClick(final SeekBarDialog dialog) { - final int ms = dialog.getValue(); - sp.edit().putInt(Settings.PREF_VIBRATION_DURATION_SETTINGS, ms).apply(); + writePreference(sp, dialog.getValue()); + } + + @Override + public void onNeutralButtonClick(final SeekBarDialog dialog) { + final int defaultValue = + Settings.readDefaultKeypressVibrationDuration(context.getResources()); + dialog.setValue(defaultValue, false /* fromUser */); + writePreference(sp, defaultValue); + } + + @Override + public void onDismiss(final SeekBarDialog dialog) { if (settingsPref != null) { settingsPref.setSummary(dialog.getValueText()); } @@ -319,13 +338,13 @@ public final class SettingsFragment extends InputMethodSettingsFragment @Override public void onStopTrackingTouch(final SeekBarDialog dialog) { - final int ms = dialog.getValue(); - AudioAndHapticFeedbackManager.getInstance().vibrate(ms); + feedbackSettingsValue(dialog.getValue()); } }; - final int currentMs = Settings.readVibrationDuration(sp, getResources()); + final int currentMs = Settings.readKeypressVibrationDuration(sp, getResources()); final SeekBarDialog.Builder builder = new SeekBarDialog.Builder(context); builder.setTitle(R.string.prefs_keypress_vibration_duration_settings) + .setNeutralButtonText(R.string.button_default) .setListener(listener) .setMaxValue(AudioAndHapticFeedbackManager.MAX_KEYPRESS_VIBRATION_DURATION) .setValueFromat(R.string.settings_keypress_vibration_duration) @@ -348,10 +367,29 @@ public final class SettingsFragment extends InputMethodSettingsFragment final AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); final PreferenceScreen settingsPref = mKeypressSoundVolumeSettingsPref; final SeekBarDialog.Listener listener = new SeekBarDialog.Adapter() { + private void writePreference(final SharedPreferences sp, final float value) { + sp.edit().putFloat(Settings.PREF_KEYPRESS_SOUND_VOLUME, value).apply(); + } + + private void feedbackSettingsValue(final float value) { + am.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD, value); + } + @Override public void onPositiveButtonClick(final SeekBarDialog dialog) { - final float volume = dialog.getValue() / PERCENT_FLOAT; - sp.edit().putFloat(Settings.PREF_KEYPRESS_SOUND_VOLUME, volume).apply(); + writePreference(sp, dialog.getValue() / PERCENT_FLOAT); + } + + @Override + public void onNeutralButtonClick(final SeekBarDialog dialog) { + final float defaultValue = + Settings.readDefaultKeypressSoundVolume(context.getResources()); + dialog.setValue((int)(defaultValue * PERCENT_INT), false /* fromUser */); + writePreference(sp, defaultValue); + } + + @Override + public void onDismiss(final SeekBarDialog dialog) { if (settingsPref != null) { settingsPref.setSummary(dialog.getValueText()); } @@ -359,13 +397,13 @@ public final class SettingsFragment extends InputMethodSettingsFragment @Override public void onStopTrackingTouch(final SeekBarDialog dialog) { - final float volume = dialog.getValue() / PERCENT_FLOAT; - am.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD, volume); + feedbackSettingsValue(dialog.getValue() / PERCENT_FLOAT); } }; final SeekBarDialog.Builder builder = new SeekBarDialog.Builder(context); final int currentVolumeInt = getCurrentKeyPressSoundVolumePercent(sp, getResources()); builder.setTitle(R.string.prefs_keypress_sound_volume_settings) + .setNeutralButtonText(R.string.button_default) .setListener(listener) .setMaxValue(PERCENT_INT) .setValue(currentVolumeInt) |