Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2eb6580 authored by DvTonder's avatar DvTonder Committed by Steve Kondik
Browse files

Settings: Forward port sound settings



Squashed port of the following commits:

Forward port miscelaneous audio features
This commit adds:
 - Silent mode
 - Volume panel style (ptunstall)
Change-Id: I21742ab94e45407111794b5868d9b4f14d7488da

Settings: Call Ring mode what Google calls it, not Silent mode (1 of 2)
Silent mode -> Ring mode cleanup
Change-Id: I4c0c182d59ebeb9e2372a24131506f1a111fe33f

SoundSettings: Show DSPManager
Change-Id: I199150b82c6f5eb72f419dc8c70fb27ed24fbfda

Notification sound-to-vibration conversion toggle
Allows to change the new feature of AOSP 4.2, where all notification are
changed to vibrations on vibrate mode. Instead, allow the old behaviour
to silence sound notifications and to only play vibrations if desired.
Change-Id: I267fc4b62ff045f305cf29c1b4f365e91f7cf1db

Feature : Volume adjust sound preference 2/2
This patch allows the users to choose if they want the audible tone when adjusting the volume
Change-Id: I6d43cba83bf4cf10f2d50502e7cee5408a73c520

Add an option to allow a (subtle) notification vibration during calls.
Change-Id: I7dfbb64334e0e8e7f98d38bf503c053ff1880658
JIRA:CYAN-1550

Hide Volume adjustment sound if it's not supported
Change-Id: I8c21c04135ac8d22208c8a2c2feff3863bd43cc0

Allow to hide Vibrate on notification option if it's not supported
also improve codes for need voice capability

Change-Id: If99335301af80c5f5d2c1ed3c20430cb363a690c

Make sure to not crash if DSP manager and/or development apps are
deactivated or deleted.

Change-Id: I92ea5a44bedbb036d59dde11e83052338e9765e8

Cleanup: Use a helper class for system setting binary toggles.
Change-Id: Iad7f8a6bf85b23223e1def18e8c9eaa0f8dd253c

Cleanup: Don't use getApplicationContext() where not needed.
Change-Id: Ie2232857cf88c98c9f2b76996a500e3d3696e6e2
Signed-off-by: default avatarArnav Gosain <nolinuxnoparty@gmail.com>
parent 45263932
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -226,6 +226,36 @@
        <item>2</item>
    </string-array>

    <!-- Volume Overlay options. -->
    <string-array name="volume_overlay_entries" translatable="false">
        <item>@string/volume_overlay_single</item>
        <item>@string/volume_overlay_expandable</item>
        <item>@string/volume_overlay_expanded</item>
        <item>@string/volume_overlay_none</item>
    </string-array>

    <!-- Values for Volume Overlay. Do not translate. -->
    <string-array name="volume_overlay_values" translatable="false">
        <item>0</item>
        <item>1</item>
        <item>2</item>
        <item>3</item>
    </string-array>

    <!-- Ring mode options. -->
    <string-array name="ring_mode_entries" translatable="false">
        <item>@string/ring_mode_normal</item>
        <item>@string/ring_mode_vibrate</item>
        <item>@string/ring_mode_mute</item>
    </string-array>

    <!-- Values for Ring mode. Do not translate. -->
    <string-array name="ring_mode_values" translatable="false">
        <item>normal</item>
        <item>vibrate</item>
        <item>mute</item>
    </string-array>

    <!-- Values for the notification light pulse spinners -->
    <string-array name="notification_pulse_length_entries" translatable="false">
        <item>@string/pulse_length_always_on</item>
+29 −9
Original line number Diff line number Diff line
@@ -26,12 +26,6 @@
    <!-- Wi-Fi settings screen, setting summary for setting the Wi-Fi priority-->
    <string name="wifi_setting_priority_summary">Specify the priority of the Wi-Fi networks</string>

    <!-- Sound settings screen -->
    <string name="ring_mode_title">Ring mode</string>
    <string name="ring_mode_normal">Normal</string>
    <string name="ring_mode_vibrate">Vibrate</string>
    <string name="ring_mode_mute">Mute</string>

    <string name="lock_screen_title">Lock screen</string>

    <string name="increasing_ring_title">Ascending ringtone</string>
@@ -162,10 +156,39 @@
    <string name="toggleNfc">NFC</string>

    <!-- Sound volumes panel -->
    <string name="volume_ring_only_description">Ringtone</string>
    <string name="link_volume_ringtones">Link ringtone &amp; notifications volumes</string>
    <string name="link_volume_mutes">Silent mode affects notifications</string>
    <string name="volume_keys_control_ring_stream">Volume keys control ringtone volume</string>

    <!-- Ring mode -->
    <string name="ring_mode_title">Ring mode</string>
    <string name="ring_mode_normal">Normal</string>
    <string name="ring_mode_vibrate">Vibrate</string>
    <string name="ring_mode_mute">Mute</string>

    <!-- Volume panel style -->
    <string name="volume_overlay_title">Volume panel style</string>
    <string name="volume_overlay_single">Single</string>
    <string name="volume_overlay_expandable">Expandable</string>
    <string name="volume_overlay_expanded">Expanded</string>
    <string name="volume_overlay_none">None</string>

    <!-- Automatation and effects category -->
    <string name="automation_effects_title">Automation &amp; Effects</string>

    <!-- Convert sound to vibration toggle -->
    <string name="notification_convert_sound_to_vibration_title">Vibrate on notification</string>
    <string name="notification_convert_sound_to_vibration_summary">In vibrate mode, all notifications will vibrate regardless of individual app settings</string>

    <!-- Vibrate during phone calls -->
    <string name="notification_vibrate_during_calls_title">Vibrate during call</string>
    <string name="notification_vibrate_during_calls_summary">Incoming notifications will softly vibrate during phone calls</string>

    <!-- Volume adjustment sound -->
    <string name="volume_adjust_sounds_enable_title">Volume adjustment sound</string>
    <string name="volume_adjust_sounds_enable_summary">Play sound when adjusting volume with volume rocker</string>

    <!-- String for IconPicker -->
    <string name="icon_picker_title">Choose icon source</string>
    <string name="icon_picker_system_icons_title">System icons</string>
@@ -226,9 +249,6 @@
    <string name="battery_light_medium_color_title">Charging</string>
    <string name="battery_light_full_color_title">Fully charged</string>

    <!-- Sound settings screen -->
    <string name="volume_ring_only_description">Ringtone</string>

    <!-- Sizes for pattern lockscreen -->
    <string name="lock_pattern_size_3">3x3</string>
    <string name="lock_pattern_size_4">4x4</string>
+59 −22
Original line number Diff line number Diff line
@@ -19,19 +19,31 @@
        android:key="sound_settings"
        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">

    <PreferenceCategory
            android:key="category_volume"
            android:title="@string/title_tile_volume"/>

    <com.android.settings.RingerVolumePreference
            android:key="ring_volume"
            android:title="@string/all_volume_title"
            android:dialogTitle="@string/all_volume_title"
            android:persistent="false"
            android:streamType="ring" />

    <Preference
            android:key="musicfx"
            android:title="@string/musicfx_title">
            <intent android:targetPackage="com.android.musicfx"
                android:targetClass="com.android.musicfx.ControlPanelPicker" />
    </Preference>
    <ListPreference
            android:key="ring_mode"
            android:title="@string/ring_mode_title"
            android:entries="@array/ring_mode_entries"
            android:entryValues="@array/ring_mode_values" />

    <ListPreference
            android:key="volume_overlay"
            android:title="@string/volume_overlay_title"
            android:entries="@array/volume_overlay_entries"
            android:entryValues="@array/volume_overlay_values" />

    <PreferenceCategory
            android:key="category_automation_effects"
            android:title="@string/automation_effects_title"/>

    <!-- Quiet hours -->
    <PreferenceScreen
@@ -39,6 +51,11 @@
            android:fragment="com.android.settings.cyanogenmod.QuietHours"
            android:title="@string/quiet_hours_title" />

    <!-- DSP Manager -->
    <Preference
            android:key="musicfx"
            android:title="@string/musicfx_title" />

    <PreferenceCategory
            android:key="category_calls_and_notification"
            android:title="@string/sound_category_call_ringtone_vibrate_title"/>
@@ -51,10 +68,9 @@
            android:persistent="false"
            android:ringtoneType="ringtone" />

    <CheckBoxPreference
    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="vibrate_when_ringing"
         android:title="@string/vibrate_when_ringing_title"
         android:persistent="false" />
            android:title="@string/vibrate_when_ringing_title" />

    <com.android.settings.cyanogenmod.IncreasingRingPreference
            android:key="increasing_ring"
@@ -64,9 +80,7 @@
            android:streamType="ring" />

    <PreferenceCategory
            android:title="@string/sound_category_system_title"/>

    <!-- Do not nest these, or removals in code will break -->
            android:title="@string/volume_notification_description"/>

    <com.android.settings.DefaultRingtonePreference
            android:key="notification_sound"
@@ -75,26 +89,49 @@
            android:persistent="false"
            android:ringtoneType="notification" />

    <CheckBoxPreference
    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="convert_sound_to_vibration"
            android:title="@string/notification_convert_sound_to_vibration_title"
            android:summary="@string/notification_convert_sound_to_vibration_summary"
            android:defaultValue="true" />

    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="vibrate_while_no_alerts"
            android:title="@string/notification_vibrate_during_calls_title"
            android:summary="@string/notification_vibrate_during_calls_summary"
            android:defaultValue="false" />

    <PreferenceCategory
            android:title="@string/sound_category_system_title"/>

    <!-- Do not nest these, or removals in code will break -->

    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="dtmf_tone"
            android:title="@string/dtmf_tone_enable_title"
            android:defaultValue="true" />

    <CheckBoxPreference
            android:key="sound_effects"
    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="sound_effects_enabled"
            android:title="@string/sound_effects_enable_title"
            android:defaultValue="true" />

    <CheckBoxPreference
            android:key="lock_sounds"
    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="lockscreen_sounds_enabled"
            android:title="@string/lock_sounds_enable_title"
            android:defaultValue="true" />

    <CheckBoxPreference
            android:key="haptic_feedback"
    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="haptic_feedback_enabled"
            android:title="@string/haptic_feedback_enable_title"
            android:defaultValue="true" />

    <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference
            android:key="volume_adjust_sounds_enabled"
            android:title="@string/volume_adjust_sounds_enable_title"
            android:summary="@string/volume_adjust_sounds_enable_summary"
            android:defaultValue="true" />

    <ListPreference
            android:key="emergency_tone"
            android:title="@string/emergency_tone_title"
+84 −55
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.VolumePanel;

import java.util.Date;
import java.util.Calendar;
@@ -64,16 +65,18 @@ public class SoundSettings extends SettingsPreferenceFragment implements
    /** If there is no setting in the provider, use this. */
    private static final int FALLBACK_EMERGENCY_TONE_VALUE = 0;

    private static final String KEY_VOLUME_OVERLAY = "volume_overlay";
    private static final String KEY_RING_MODE = "ring_mode";
    private static final String KEY_VIBRATE = "vibrate_when_ringing";
    private static final String KEY_RING_VOLUME = "ring_volume";
    private static final String KEY_INCREASING_RING = "increasing_ring";
    private static final String KEY_MUSICFX = "musicfx";
    private static final String KEY_DTMF_TONE = "dtmf_tone";
    private static final String KEY_SOUND_EFFECTS = "sound_effects";
    private static final String KEY_HAPTIC_FEEDBACK = "haptic_feedback";
    private static final String KEY_DTMF_TONE = Settings.System.DTMF_TONE_WHEN_DIALING;
    private static final String KEY_SOUND_EFFECTS = Settings.System.SOUND_EFFECTS_ENABLED;
    private static final String KEY_HAPTIC_FEEDBACK = Settings.System.HAPTIC_FEEDBACK_ENABLED;
    private static final String KEY_EMERGENCY_TONE = "emergency_tone";
    private static final String KEY_SOUND_SETTINGS = "sound_settings";
    private static final String KEY_LOCK_SOUNDS = "lock_sounds";
    private static final String KEY_LOCK_SOUNDS = Settings.System.LOCKSCREEN_SOUNDS_ENABLED;
    private static final String KEY_RINGTONE = "ringtone";
    private static final String KEY_NOTIFICATION_SOUND = "notification_sound";
    private static final String KEY_CATEGORY_CALLS = "category_calls_and_notification";
@@ -82,11 +85,19 @@ public class SoundSettings extends SettingsPreferenceFragment implements
    private static final String KEY_DOCK_SOUNDS = "dock_sounds";
    private static final String KEY_DOCK_AUDIO_MEDIA_ENABLED = "dock_audio_media_enabled";
    private static final String KEY_QUIET_HOURS = "quiet_hours";

    private static final String KEY_CONVERT_SOUND_TO_VIBRATE =
            Settings.System.NOTIFICATION_CONVERT_SOUND_TO_VIBRATION;
    private static final String KEY_VIBRATE_DURING_CALLS =
            Settings.System.NOTIFICATION_VIBRATE_DURING_ALERTS_DISABLED;
    private static final String KEY_VOLUME_ADJUST_SOUNDS = "volume_adjust_sounds_enabled";
    private static final String KEY_POWER_NOTIFICATIONS = "power_notifications";
    private static final String KEY_POWER_NOTIFICATIONS_VIBRATE = "power_notifications_vibrate";
    private static final String KEY_POWER_NOTIFICATIONS_RINGTONE = "power_notifications_ringtone";

    private static final String RING_MODE_NORMAL = "normal";
    private static final String RING_MODE_VIBRATE = "vibrate";
    private static final String RING_MODE_MUTE = "mute";

    private static final String[] NEED_VOICE_CAPABILITY = {
            KEY_RINGTONE, KEY_DTMF_TONE, KEY_CATEGORY_CALLS,
            KEY_EMERGENCY_TONE, KEY_INCREASING_RING, KEY_VIBRATE
@@ -101,12 +112,10 @@ public class SoundSettings extends SettingsPreferenceFragment implements
    // Used for power notification uri string if set to silent
    private static final String POWER_NOTIFICATIONS_SILENT_URI = "silent";

    private CheckBoxPreference mVibrateWhenRinging;
    private CheckBoxPreference mDtmfTone;
    private ListPreference mVolumeOverlay;
    private ListPreference mRingMode;
    private CheckBoxPreference mSoundEffects;
    private CheckBoxPreference mHapticFeedback;
    private Preference mMusicFx;
    private CheckBoxPreference mLockSounds;
    private Preference mRingtonePreference;
    private Preference mNotificationPreference;
    private PreferenceScreen mQuietHours;
@@ -142,6 +151,8 @@ public class SoundSettings extends SettingsPreferenceFragment implements
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_DOCK_EVENT)) {
                handleDockChange(intent);
            } else if (intent.getAction().equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) {
                updateState(false);
            }
        }
    };
@@ -163,8 +174,20 @@ public class SoundSettings extends SettingsPreferenceFragment implements
            getPreferenceScreen().removePreference(findPreference(KEY_EMERGENCY_TONE));
        }

        mVolumeOverlay = (ListPreference) findPreference(KEY_VOLUME_OVERLAY);
        mVolumeOverlay.setOnPreferenceChangeListener(this);
        int volumeOverlay = Settings.System.getInt(getContentResolver(),
                Settings.System.MODE_VOLUME_OVERLAY,
                VolumePanel.VOLUME_OVERLAY_EXPANDABLE);
        mVolumeOverlay.setValue(Integer.toString(volumeOverlay));
        mVolumeOverlay.setSummary(mVolumeOverlay.getEntry());

        mRingMode = (ListPreference) findPreference(KEY_RING_MODE);
        if (!getResources().getBoolean(R.bool.has_silent_mode)) {
            getPreferenceScreen().removePreference(mRingMode);
            findPreference(KEY_RING_VOLUME).setDependency(null);
        } else {
            mRingMode.setOnPreferenceChangeListener(this);
        }

        if (getResources().getBoolean(com.android.internal.R.bool.config_useFixedVolume)) {
@@ -182,27 +205,11 @@ public class SoundSettings extends SettingsPreferenceFragment implements
            mQuietHours.setSummary(getString(R.string.quiet_hours_summary));
        }

        mVibrateWhenRinging = (CheckBoxPreference) findPreference(KEY_VIBRATE);
        mVibrateWhenRinging.setPersistent(false);
        mVibrateWhenRinging.setChecked(Settings.System.getInt(resolver,
                Settings.System.VIBRATE_WHEN_RINGING, 0) != 0);

        mDtmfTone = (CheckBoxPreference) findPreference(KEY_DTMF_TONE);
        mDtmfTone.setPersistent(false);
        mDtmfTone.setChecked(Settings.System.getInt(resolver,
                Settings.System.DTMF_TONE_WHEN_DIALING, 1) != 0);
        mSoundEffects = (CheckBoxPreference) findPreference(KEY_SOUND_EFFECTS);
        mSoundEffects.setPersistent(false);
        mSoundEffects.setChecked(Settings.System.getInt(resolver,
                Settings.System.SOUND_EFFECTS_ENABLED, 1) != 0);
        mHapticFeedback = (CheckBoxPreference) findPreference(KEY_HAPTIC_FEEDBACK);
        mHapticFeedback.setPersistent(false);
        mHapticFeedback.setChecked(Settings.System.getInt(resolver,
                Settings.System.HAPTIC_FEEDBACK_ENABLED, 1) != 0);
        mLockSounds = (CheckBoxPreference) findPreference(KEY_LOCK_SOUNDS);
        mLockSounds.setPersistent(false);
        mLockSounds.setChecked(Settings.System.getInt(resolver,
                Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) != 0);

        if (!Utils.hasVolumeRocker(getActivity())) {
            getPreferenceScreen().removePreference(findPreference(KEY_VOLUME_ADJUST_SOUNDS));
        }

        mRingtonePreference = findPreference(KEY_RINGTONE);
        mNotificationPreference = findPreference(KEY_NOTIFICATION_SOUND);
@@ -211,6 +218,8 @@ public class SoundSettings extends SettingsPreferenceFragment implements
        if (vibrator == null || !vibrator.hasVibrator()) {
            removePreference(KEY_VIBRATE);
            removePreference(KEY_HAPTIC_FEEDBACK);
            removePreference(KEY_CONVERT_SOUND_TO_VIBRATE);
            removePreference(KEY_VIBRATE_DURING_CALLS);
        }

        if (TelephonyManager.PHONE_TYPE_CDMA == activePhoneType) {
@@ -225,15 +234,13 @@ public class SoundSettings extends SettingsPreferenceFragment implements

        mMusicFx = mSoundSettings.findPreference(KEY_MUSICFX);
        Intent i = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL);
        mMusicFx.setIntent(i);
        PackageManager p = getPackageManager();
        List<ResolveInfo> ris = p.queryIntentActivities(i, PackageManager.GET_DISABLED_COMPONENTS);
        if (ris.size() <= 2) {
            // no need to show the item if there is no choice for the user to make
            // note: the built in musicfx panel has two activities (one being a
            // compatibility shim that launches either the other activity, or a
            // third party one), hence the check for <=2. If the implementation
            // of the compatbility layer changes, this check may need to be updated.
        List<ResolveInfo> ris = p.queryIntentActivities(i, 0);
        if (ris.size() == 0) {
            mSoundSettings.removePreference(mMusicFx);
        } else if (ris.size() == 1) {
            mMusicFx.setSummary(ris.get(0).loadLabel(p));
        }

        if (!Utils.isVoiceCapable(getActivity())) {
@@ -303,6 +310,10 @@ public class SoundSettings extends SettingsPreferenceFragment implements

        IntentFilter filter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
        getActivity().registerReceiver(mReceiver, filter);

        filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
        getActivity().registerReceiver(mReceiver, filter);

    }

    @Override
@@ -312,11 +323,36 @@ public class SoundSettings extends SettingsPreferenceFragment implements
        getActivity().unregisterReceiver(mReceiver);
    }

    private void setPhoneRingModeValue(String value) {
        int ringerMode = AudioManager.RINGER_MODE_NORMAL;
        if (value.equals(RING_MODE_MUTE)) {
            ringerMode = AudioManager.RINGER_MODE_SILENT;
        } else if (value.equals(RING_MODE_VIBRATE)) {
            ringerMode = AudioManager.RINGER_MODE_VIBRATE;
        }
        mAudioManager.setRingerMode(ringerMode);
    }

    private String getPhoneRingModeSettingValue() {
        switch (mAudioManager.getRingerMode()) {
        case AudioManager.RINGER_MODE_NORMAL:
            return RING_MODE_NORMAL;
        case AudioManager.RINGER_MODE_VIBRATE:
            return RING_MODE_VIBRATE;
        case AudioManager.RINGER_MODE_SILENT:
            return RING_MODE_MUTE;
        }
        // Shouldn't happen
        return RING_MODE_NORMAL;
    }

    // updateState in fact updates the UI to reflect the system state
    private void updateState(boolean force) {
        if (getActivity() == null) return;
        ContentResolver resolver = getContentResolver();

        mRingMode.setValue(getPhoneRingModeSettingValue());

        if (Settings.System.getInt(resolver, Settings.System.QUIET_HOURS_ENABLED, 0) == 1) {
            mQuietHours.setSummary(getString(R.string.quiet_hours_active_from) + " " +
                    returnTime(Settings.System.getString(resolver, Settings.System.QUIET_HOURS_START))
@@ -325,6 +361,8 @@ public class SoundSettings extends SettingsPreferenceFragment implements
        } else {
            mQuietHours.setSummary(getString(R.string.quiet_hours_summary));
        }

        mRingMode.setSummary(mRingMode.getEntry());
    }

    private void updateRingtoneName(int type, Preference preference, int msg) {
@@ -360,29 +398,12 @@ public class SoundSettings extends SettingsPreferenceFragment implements

    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
        if (preference == mVibrateWhenRinging) {
            Settings.System.putInt(getContentResolver(), Settings.System.VIBRATE_WHEN_RINGING,
                    mVibrateWhenRinging.isChecked() ? 1 : 0);
        } else if (preference == mDtmfTone) {
            Settings.System.putInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING,
                    mDtmfTone.isChecked() ? 1 : 0);

        } else if (preference == mSoundEffects) {
        if (preference == mSoundEffects) {
            if (mSoundEffects.isChecked()) {
                mAudioManager.loadSoundEffects();
            } else {
                mAudioManager.unloadSoundEffects();
            }
            Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED,
                    mSoundEffects.isChecked() ? 1 : 0);

        } else if (preference == mHapticFeedback) {
            Settings.System.putInt(getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED,
                    mHapticFeedback.isChecked() ? 1 : 0);

        } else if (preference == mLockSounds) {
            Settings.System.putInt(getContentResolver(), Settings.System.LOCKSCREEN_SOUNDS_ENABLED,
                    mLockSounds.isChecked() ? 1 : 0);

        } else if (preference == mMusicFx) {
            // let the framework fire off the intent
@@ -449,6 +470,14 @@ public class SoundSettings extends SettingsPreferenceFragment implements
            } catch (NumberFormatException e) {
                Log.e(TAG, "could not persist emergency tone setting", e);
            }
        } else if (preference == mRingMode) {
            setPhoneRingModeValue(objValue.toString());
        } else if (preference == mVolumeOverlay) {
            final int value = Integer.valueOf((String) objValue);
            final int index = mVolumeOverlay.findIndexOfValue((String) objValue);
            Settings.System.putInt(getContentResolver(),
                    Settings.System.MODE_VOLUME_OVERLAY, value);
            mVolumeOverlay.setSummary(mVolumeOverlay.getEntries()[index]);
        }

        return true;
@@ -467,7 +496,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements
        cal.set(Calendar.HOUR_OF_DAY, hr);
        cal.set(Calendar.MINUTE, mn);
        Date date = cal.getTime();
        return DateFormat.getTimeFormat(getActivity().getApplicationContext()).format(date);
        return DateFormat.getTimeFormat(getActivity()).format(date);
    }

    @Override