Loading java/res/layout/sound_effect_volume_dialog.xml 0 → 100644 +44 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dip"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_margin="10dip"> <TextView android:id="@+id/sound_effect_volume_value" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dip"/> </LinearLayout> <SeekBar android:id="@+id/sound_effect_volume_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:layout_margin="10dip"/> </LinearLayout> java/res/values/strings.xml +4 −2 Original line number Diff line number Diff line Loading @@ -342,6 +342,8 @@ <!-- Title of an option for usability study mode --> <string name="prefs_usability_study_mode">Usability study mode</string> <!-- Title of the settings for vibration duration --> <string name="prefs_vibration_duration_settings">Vibration duration settings</string> <!-- Title of the settings for keypress vibration duration --> <string name="prefs_keypress_vibration_duration_settings">Keypress vibration duration settings</string> <!-- Title of the settings for keypress sound volume --> <string name="prefs_keypress_sound_volume_settings">Keypress sound volume settings</string> </resources> java/res/xml/prefs.xml +4 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,10 @@ android:defaultValue="true" /> <PreferenceScreen android:key="pref_vibration_duration_settings" android:title="@string/prefs_vibration_duration_settings"/> android:title="@string/prefs_keypress_vibration_duration_settings"/> <PreferenceScreen android:key="pref_keypress_sound_volume" android:title="@string/prefs_keypress_sound_volume_settings" /> <!-- TODO: evaluate results and revive this option. The code already supports it. --> <!-- <CheckBoxPreference --> Loading java/src/com/android/inputmethod/latin/LatinIME.java +2 −10 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.content.res.Resources; import android.inputmethodservice.InputMethodService; import android.media.AudioManager; import android.net.ConnectivityManager; import android.os.Build; import android.os.Debug; import android.os.Message; import android.os.SystemClock; Loading Loading @@ -2097,16 +2096,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } }; // update sound effect volume // update keypress sound volume private void updateSoundEffectVolume() { final String[] volumePerHardwareList = mResources.getStringArray(R.array.keypress_volumes); final String hardwarePrefix = Build.HARDWARE + ","; for (final String element : volumePerHardwareList) { if (element.startsWith(hardwarePrefix)) { mFxVolume = Float.parseFloat(element.substring(element.lastIndexOf(',') + 1)); break; } } mFxVolume = Utils.getCurrentKeypressSoundVolume(mPrefs, mResources); } // update flags for silent mode Loading java/src/com/android/inputmethod/latin/Settings.java +119 −20 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.media.AudioManager; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; Loading Loading @@ -91,9 +92,11 @@ public class Settings extends InputMethodSettingsActivity public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode"; public static final String PREF_VIBRATION_DURATION_SETTINGS = public static final String PREF_KEYPRESS_VIBRATION_DURATION_SETTINGS = "pref_vibration_duration_settings"; public static final String PREF_KEYPRESS_SOUND_VOLUME = "pref_keypress_sound_volume"; // Dialog ids private static final int VOICE_INPUT_CONFIRM_DIALOG = 0; Loading Loading @@ -327,7 +330,8 @@ public class Settings extends InputMethodSettingsActivity } private PreferenceScreen mInputLanguageSelection; private PreferenceScreen mVibrationDurationSettingsPref; private PreferenceScreen mKeypressVibrationDurationSettingsPref; private PreferenceScreen mKeypressSoundVolumeSettingsPref; private ListPreference mVoicePreference; private CheckBoxPreference mShowSettingsKeyPreference; private ListPreference mShowCorrectionSuggestionsPreference; Loading @@ -341,7 +345,8 @@ public class Settings extends InputMethodSettingsActivity private boolean mVoiceOn; private AlertDialog mDialog; private TextView mVibrationSettingsTextView; private TextView mKeypressVibrationDurationSettingsTextView; private TextView mKeypressSoundVolumeSettingsTextView; private boolean mOkClicked = false; private String mVoiceModeOff; Loading Loading @@ -477,19 +482,34 @@ public class Settings extends InputMethodSettingsActivity } } mVibrationDurationSettingsPref = (PreferenceScreen) findPreference(PREF_VIBRATION_DURATION_SETTINGS); if (mVibrationDurationSettingsPref != null) { mVibrationDurationSettingsPref.setOnPreferenceClickListener( mKeypressVibrationDurationSettingsPref = (PreferenceScreen) findPreference(PREF_KEYPRESS_VIBRATION_DURATION_SETTINGS); if (mKeypressVibrationDurationSettingsPref != null) { mKeypressVibrationDurationSettingsPref.setOnPreferenceClickListener( new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { showVibrationSettingsDialog(); showKeypressVibrationDurationSettingsDialog(); return true; } }); updateVibrationDurationSettingsSummary(prefs, res); updateKeypressVibrationDurationSettingsSummary(prefs, res); } mKeypressSoundVolumeSettingsPref = (PreferenceScreen) findPreference(PREF_KEYPRESS_SOUND_VOLUME); if (mKeypressSoundVolumeSettingsPref != null) { mKeypressSoundVolumeSettingsPref.setOnPreferenceClickListener( new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { showKeypressSoundVolumeSettingDialog(); return true; } }); updateKeypressSoundVolumeSummary(prefs, res); } refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, res); } @SuppressWarnings("unused") Loading Loading @@ -537,6 +557,7 @@ public class Settings extends InputMethodSettingsActivity updateVoiceModeSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); } @Override Loading Loading @@ -637,26 +658,44 @@ public class Settings extends InputMethodSettingsActivity } } private void updateVibrationDurationSettingsSummary(SharedPreferences sp, Resources res) { if (mVibrationDurationSettingsPref != null) { mVibrationDurationSettingsPref.setSummary( private void refreshEnablingsOfKeypressSoundAndVibrationSettings( SharedPreferences sp, Resources res) { if (mKeypressVibrationDurationSettingsPref != null) { final boolean hasVibrator = VibratorCompatWrapper.getInstance(this).hasVibrator(); final boolean vibrateOn = hasVibrator && sp.getBoolean(Settings.PREF_VIBRATE_ON, res.getBoolean(R.bool.config_default_vibration_enabled)); mKeypressVibrationDurationSettingsPref.setEnabled(vibrateOn); } if (mKeypressSoundVolumeSettingsPref != null) { final boolean soundOn = sp.getBoolean(Settings.PREF_SOUND_ON, res.getBoolean(R.bool.config_default_sound_enabled)); mKeypressSoundVolumeSettingsPref.setEnabled(soundOn); } } private void updateKeypressVibrationDurationSettingsSummary( SharedPreferences sp, Resources res) { if (mKeypressVibrationDurationSettingsPref != null) { mKeypressVibrationDurationSettingsPref.setSummary( Utils.getCurrentVibrationDuration(sp, res) + res.getString(R.string.settings_ms)); } } private void showVibrationSettingsDialog() { private void showKeypressVibrationDurationSettingsDialog() { final SharedPreferences sp = getPreferenceManager().getSharedPreferences(); final Activity context = getActivityInternal(); final Resources res = context.getResources(); final AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.prefs_vibration_duration_settings); builder.setTitle(R.string.prefs_keypress_vibration_duration_settings); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int whichButton) { final int ms = Integer.valueOf(mVibrationSettingsTextView.getText().toString()); sp.edit().putInt(Settings.PREF_VIBRATION_DURATION_SETTINGS, ms).apply(); updateVibrationDurationSettingsSummary(sp, res); final int ms = Integer.valueOf( mKeypressVibrationDurationSettingsTextView.getText().toString()); sp.edit().putInt(Settings.PREF_KEYPRESS_VIBRATION_DURATION_SETTINGS, ms).apply(); updateKeypressVibrationDurationSettingsSummary(sp, res); } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { Loading @@ -669,13 +708,13 @@ public class Settings extends InputMethodSettingsActivity R.layout.vibration_settings_dialog, null); final int currentMs = Utils.getCurrentVibrationDuration( getPreferenceManager().getSharedPreferences(), getResources()); mVibrationSettingsTextView = (TextView)v.findViewById(R.id.vibration_value); mKeypressVibrationDurationSettingsTextView = (TextView)v.findViewById(R.id.vibration_value); final SeekBar sb = (SeekBar)v.findViewById(R.id.vibration_settings); sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { final int tempMs = arg1; mVibrationSettingsTextView.setText(String.valueOf(tempMs)); mKeypressVibrationDurationSettingsTextView.setText(String.valueOf(tempMs)); } @Override Loading @@ -689,7 +728,67 @@ public class Settings extends InputMethodSettingsActivity } }); sb.setProgress(currentMs); mVibrationSettingsTextView.setText(String.valueOf(currentMs)); mKeypressVibrationDurationSettingsTextView.setText(String.valueOf(currentMs)); builder.setView(v); builder.create().show(); } private void updateKeypressSoundVolumeSummary(SharedPreferences sp, Resources res) { if (mKeypressSoundVolumeSettingsPref != null) { mKeypressSoundVolumeSettingsPref.setSummary( String.valueOf((int)(Utils.getCurrentKeypressSoundVolume(sp, res) * 100))); } } private void showKeypressSoundVolumeSettingDialog() { final AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); final SharedPreferences sp = getPreferenceManager().getSharedPreferences(); final Activity context = getActivityInternal(); final Resources res = context.getResources(); final AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.prefs_keypress_sound_volume_settings); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int whichButton) { final float volume = ((float)Integer.valueOf( mKeypressSoundVolumeSettingsTextView.getText().toString())) / 100; sp.edit().putFloat(Settings.PREF_KEYPRESS_SOUND_VOLUME, volume).apply(); updateKeypressSoundVolumeSummary(sp, res); } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }); final View v = context.getLayoutInflater().inflate( R.layout.sound_effect_volume_dialog, null); final int currentVolumeInt = (int)(Utils.getCurrentKeypressSoundVolume( getPreferenceManager().getSharedPreferences(), getResources()) * 100); mKeypressSoundVolumeSettingsTextView = (TextView)v.findViewById(R.id.sound_effect_volume_value); final SeekBar sb = (SeekBar)v.findViewById(R.id.sound_effect_volume_bar); sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { final int tempVolume = arg1; mKeypressSoundVolumeSettingsTextView.setText(String.valueOf(tempVolume)); } @Override public void onStartTrackingTouch(SeekBar arg0) { } @Override public void onStopTrackingTouch(SeekBar arg0) { final float tempVolume = ((float)arg0.getProgress()) / 100; am.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD, tempVolume); } }); sb.setProgress(currentVolumeInt); mKeypressSoundVolumeSettingsTextView.setText(String.valueOf(currentVolumeInt)); builder.setView(v); builder.create().show(); } Loading Loading
java/res/layout/sound_effect_volume_dialog.xml 0 → 100644 +44 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2011, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dip"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_margin="10dip"> <TextView android:id="@+id/sound_effect_volume_value" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dip"/> </LinearLayout> <SeekBar android:id="@+id/sound_effect_volume_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:layout_margin="10dip"/> </LinearLayout>
java/res/values/strings.xml +4 −2 Original line number Diff line number Diff line Loading @@ -342,6 +342,8 @@ <!-- Title of an option for usability study mode --> <string name="prefs_usability_study_mode">Usability study mode</string> <!-- Title of the settings for vibration duration --> <string name="prefs_vibration_duration_settings">Vibration duration settings</string> <!-- Title of the settings for keypress vibration duration --> <string name="prefs_keypress_vibration_duration_settings">Keypress vibration duration settings</string> <!-- Title of the settings for keypress sound volume --> <string name="prefs_keypress_sound_volume_settings">Keypress sound volume settings</string> </resources>
java/res/xml/prefs.xml +4 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,10 @@ android:defaultValue="true" /> <PreferenceScreen android:key="pref_vibration_duration_settings" android:title="@string/prefs_vibration_duration_settings"/> android:title="@string/prefs_keypress_vibration_duration_settings"/> <PreferenceScreen android:key="pref_keypress_sound_volume" android:title="@string/prefs_keypress_sound_volume_settings" /> <!-- TODO: evaluate results and revive this option. The code already supports it. --> <!-- <CheckBoxPreference --> Loading
java/src/com/android/inputmethod/latin/LatinIME.java +2 −10 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import android.content.res.Resources; import android.inputmethodservice.InputMethodService; import android.media.AudioManager; import android.net.ConnectivityManager; import android.os.Build; import android.os.Debug; import android.os.Message; import android.os.SystemClock; Loading Loading @@ -2097,16 +2096,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } }; // update sound effect volume // update keypress sound volume private void updateSoundEffectVolume() { final String[] volumePerHardwareList = mResources.getStringArray(R.array.keypress_volumes); final String hardwarePrefix = Build.HARDWARE + ","; for (final String element : volumePerHardwareList) { if (element.startsWith(hardwarePrefix)) { mFxVolume = Float.parseFloat(element.substring(element.lastIndexOf(',') + 1)); break; } } mFxVolume = Utils.getCurrentKeypressSoundVolume(mPrefs, mResources); } // update flags for silent mode Loading
java/src/com/android/inputmethod/latin/Settings.java +119 −20 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.media.AudioManager; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; Loading Loading @@ -91,9 +92,11 @@ public class Settings extends InputMethodSettingsActivity public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode"; public static final String PREF_VIBRATION_DURATION_SETTINGS = public static final String PREF_KEYPRESS_VIBRATION_DURATION_SETTINGS = "pref_vibration_duration_settings"; public static final String PREF_KEYPRESS_SOUND_VOLUME = "pref_keypress_sound_volume"; // Dialog ids private static final int VOICE_INPUT_CONFIRM_DIALOG = 0; Loading Loading @@ -327,7 +330,8 @@ public class Settings extends InputMethodSettingsActivity } private PreferenceScreen mInputLanguageSelection; private PreferenceScreen mVibrationDurationSettingsPref; private PreferenceScreen mKeypressVibrationDurationSettingsPref; private PreferenceScreen mKeypressSoundVolumeSettingsPref; private ListPreference mVoicePreference; private CheckBoxPreference mShowSettingsKeyPreference; private ListPreference mShowCorrectionSuggestionsPreference; Loading @@ -341,7 +345,8 @@ public class Settings extends InputMethodSettingsActivity private boolean mVoiceOn; private AlertDialog mDialog; private TextView mVibrationSettingsTextView; private TextView mKeypressVibrationDurationSettingsTextView; private TextView mKeypressSoundVolumeSettingsTextView; private boolean mOkClicked = false; private String mVoiceModeOff; Loading Loading @@ -477,19 +482,34 @@ public class Settings extends InputMethodSettingsActivity } } mVibrationDurationSettingsPref = (PreferenceScreen) findPreference(PREF_VIBRATION_DURATION_SETTINGS); if (mVibrationDurationSettingsPref != null) { mVibrationDurationSettingsPref.setOnPreferenceClickListener( mKeypressVibrationDurationSettingsPref = (PreferenceScreen) findPreference(PREF_KEYPRESS_VIBRATION_DURATION_SETTINGS); if (mKeypressVibrationDurationSettingsPref != null) { mKeypressVibrationDurationSettingsPref.setOnPreferenceClickListener( new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { showVibrationSettingsDialog(); showKeypressVibrationDurationSettingsDialog(); return true; } }); updateVibrationDurationSettingsSummary(prefs, res); updateKeypressVibrationDurationSettingsSummary(prefs, res); } mKeypressSoundVolumeSettingsPref = (PreferenceScreen) findPreference(PREF_KEYPRESS_SOUND_VOLUME); if (mKeypressSoundVolumeSettingsPref != null) { mKeypressSoundVolumeSettingsPref.setOnPreferenceClickListener( new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { showKeypressSoundVolumeSettingDialog(); return true; } }); updateKeypressSoundVolumeSummary(prefs, res); } refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, res); } @SuppressWarnings("unused") Loading Loading @@ -537,6 +557,7 @@ public class Settings extends InputMethodSettingsActivity updateVoiceModeSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); } @Override Loading Loading @@ -637,26 +658,44 @@ public class Settings extends InputMethodSettingsActivity } } private void updateVibrationDurationSettingsSummary(SharedPreferences sp, Resources res) { if (mVibrationDurationSettingsPref != null) { mVibrationDurationSettingsPref.setSummary( private void refreshEnablingsOfKeypressSoundAndVibrationSettings( SharedPreferences sp, Resources res) { if (mKeypressVibrationDurationSettingsPref != null) { final boolean hasVibrator = VibratorCompatWrapper.getInstance(this).hasVibrator(); final boolean vibrateOn = hasVibrator && sp.getBoolean(Settings.PREF_VIBRATE_ON, res.getBoolean(R.bool.config_default_vibration_enabled)); mKeypressVibrationDurationSettingsPref.setEnabled(vibrateOn); } if (mKeypressSoundVolumeSettingsPref != null) { final boolean soundOn = sp.getBoolean(Settings.PREF_SOUND_ON, res.getBoolean(R.bool.config_default_sound_enabled)); mKeypressSoundVolumeSettingsPref.setEnabled(soundOn); } } private void updateKeypressVibrationDurationSettingsSummary( SharedPreferences sp, Resources res) { if (mKeypressVibrationDurationSettingsPref != null) { mKeypressVibrationDurationSettingsPref.setSummary( Utils.getCurrentVibrationDuration(sp, res) + res.getString(R.string.settings_ms)); } } private void showVibrationSettingsDialog() { private void showKeypressVibrationDurationSettingsDialog() { final SharedPreferences sp = getPreferenceManager().getSharedPreferences(); final Activity context = getActivityInternal(); final Resources res = context.getResources(); final AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.prefs_vibration_duration_settings); builder.setTitle(R.string.prefs_keypress_vibration_duration_settings); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int whichButton) { final int ms = Integer.valueOf(mVibrationSettingsTextView.getText().toString()); sp.edit().putInt(Settings.PREF_VIBRATION_DURATION_SETTINGS, ms).apply(); updateVibrationDurationSettingsSummary(sp, res); final int ms = Integer.valueOf( mKeypressVibrationDurationSettingsTextView.getText().toString()); sp.edit().putInt(Settings.PREF_KEYPRESS_VIBRATION_DURATION_SETTINGS, ms).apply(); updateKeypressVibrationDurationSettingsSummary(sp, res); } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { Loading @@ -669,13 +708,13 @@ public class Settings extends InputMethodSettingsActivity R.layout.vibration_settings_dialog, null); final int currentMs = Utils.getCurrentVibrationDuration( getPreferenceManager().getSharedPreferences(), getResources()); mVibrationSettingsTextView = (TextView)v.findViewById(R.id.vibration_value); mKeypressVibrationDurationSettingsTextView = (TextView)v.findViewById(R.id.vibration_value); final SeekBar sb = (SeekBar)v.findViewById(R.id.vibration_settings); sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { final int tempMs = arg1; mVibrationSettingsTextView.setText(String.valueOf(tempMs)); mKeypressVibrationDurationSettingsTextView.setText(String.valueOf(tempMs)); } @Override Loading @@ -689,7 +728,67 @@ public class Settings extends InputMethodSettingsActivity } }); sb.setProgress(currentMs); mVibrationSettingsTextView.setText(String.valueOf(currentMs)); mKeypressVibrationDurationSettingsTextView.setText(String.valueOf(currentMs)); builder.setView(v); builder.create().show(); } private void updateKeypressSoundVolumeSummary(SharedPreferences sp, Resources res) { if (mKeypressSoundVolumeSettingsPref != null) { mKeypressSoundVolumeSettingsPref.setSummary( String.valueOf((int)(Utils.getCurrentKeypressSoundVolume(sp, res) * 100))); } } private void showKeypressSoundVolumeSettingDialog() { final AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); final SharedPreferences sp = getPreferenceManager().getSharedPreferences(); final Activity context = getActivityInternal(); final Resources res = context.getResources(); final AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.prefs_keypress_sound_volume_settings); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int whichButton) { final float volume = ((float)Integer.valueOf( mKeypressSoundVolumeSettingsTextView.getText().toString())) / 100; sp.edit().putFloat(Settings.PREF_KEYPRESS_SOUND_VOLUME, volume).apply(); updateKeypressSoundVolumeSummary(sp, res); } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }); final View v = context.getLayoutInflater().inflate( R.layout.sound_effect_volume_dialog, null); final int currentVolumeInt = (int)(Utils.getCurrentKeypressSoundVolume( getPreferenceManager().getSharedPreferences(), getResources()) * 100); mKeypressSoundVolumeSettingsTextView = (TextView)v.findViewById(R.id.sound_effect_volume_value); final SeekBar sb = (SeekBar)v.findViewById(R.id.sound_effect_volume_bar); sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { final int tempVolume = arg1; mKeypressSoundVolumeSettingsTextView.setText(String.valueOf(tempVolume)); } @Override public void onStartTrackingTouch(SeekBar arg0) { } @Override public void onStopTrackingTouch(SeekBar arg0) { final float tempVolume = ((float)arg0.getProgress()) / 100; am.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD, tempVolume); } }); sb.setProgress(currentVolumeInt); mKeypressSoundVolumeSettingsTextView.setText(String.valueOf(currentVolumeInt)); builder.setView(v); builder.create().show(); } Loading