diff --git a/res/values/strings.xml b/res/values/strings.xml
index dea16208201..db68d71f224 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5624,6 +5624,9 @@
Default notification ringtone
+
+ Default alarm ringtone
+
Also vibrate for calls
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 2cdebc4f424..dd03fb09654 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -81,6 +81,14 @@
android:persistent="false"
android:ringtoneType="notification" />
+
+
+
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 1c2132910e5..dae492f9f1f 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -73,6 +73,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
private static final String KEY_NOTIFICATION_VOLUME = "notification_volume";
private static final String KEY_PHONE_RINGTONE = "ringtone";
private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
+ private static final String KEY_ALARM_RINGTONE = "alarm_ringtone";
private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
private static final String KEY_MASTER_MONO = "master_mono";
private static final String KEY_WIFI_DISPLAY = "wifi_display";
@@ -103,6 +104,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
private Preference mPhoneRingtonePreference;
private Preference mNotificationRingtonePreference;
+ private Preference mAlarmRingtonePreference;
private TwoStatePreference mVibrateWhenRinging;
private TwoStatePreference mMasterMono;
private ComponentName mSuppressor;
@@ -324,6 +326,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
}
mNotificationRingtonePreference =
getPreferenceScreen().findPreference(KEY_NOTIFICATION_RINGTONE);
+ mAlarmRingtonePreference = getPreferenceScreen().findPreference(KEY_ALARM_RINGTONE);
}
private void lookupRingtoneNames() {
@@ -347,6 +350,13 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
mHandler.obtainMessage(H.UPDATE_NOTIFICATION_RINGTONE, summary).sendToTarget();
}
}
+ if (mAlarmRingtonePreference != null) {
+ final CharSequence summary =
+ updateRingtoneName(mContext, RingtoneManager.TYPE_ALARM);
+ if (summary != null) {
+ mHandler.obtainMessage(H.UPDATE_ALARM_RINGTONE, summary).sendToTarget();
+ }
+ }
}
};
@@ -484,6 +494,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
private static final int UPDATE_EFFECTS_SUPPRESSOR = 4;
private static final int UPDATE_RINGER_MODE = 5;
private static final int UPDATE_MASTER_MONO = 6;
+ private static final int UPDATE_ALARM_RINGTONE = 7;
private H() {
super(Looper.getMainLooper());
@@ -510,6 +521,9 @@ public class SoundSettings extends SettingsPreferenceFragment implements Indexab
case UPDATE_MASTER_MONO:
updateMasterMono();
break;
+ case UPDATE_ALARM_RINGTONE:
+ mAlarmRingtonePreference.setSummary((CharSequence) msg.obj);
+ break;
}
}
}