Merge "Add default alarm ringtone to sound settings."
diff --git a/res/values/strings.xml b/res/values/strings.xml
index dea1620..db68d71 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5624,6 +5624,9 @@
     <!-- Sound: Title for the option defining the default notification ringtone. [CHAR LIMIT=30] -->
     <string name="notification_ringtone_title">Default notification ringtone</string>
 
+    <!-- Sound: Title for the option defining the default alarm ringtone. [CHAR LIMIT=30] -->
+    <string name="alarm_ringtone_title">Default alarm ringtone</string>
+
     <!-- Sound: Title for the option managing whether or not to vibrate when ringing. [CHAR LIMIT=30] -->
     <string name="vibrate_when_ringing_title">Also vibrate for calls</string>
 
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 2cdebc4..dd03fb0 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -81,6 +81,14 @@
                 android:persistent="false"
                 android:ringtoneType="notification" />
 
+        <!-- Default alarm ringtone -->
+        <com.android.settings.DefaultRingtonePreference
+                android:key="alarm_ringtone"
+                android:title="@string/alarm_ringtone_title"
+                android:dialogTitle="@string/alarm_ringtone_title"
+                android:persistent="false"
+                android:ringtoneType="alarm" />
+
         <PreferenceScreen
                 android:key="cell_broadcast_settings"
                 android:title="@string/cell_broadcast_settings" >
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 1c21329..dae492f 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -73,6 +73,7 @@
     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 @@
 
     private Preference mPhoneRingtonePreference;
     private Preference mNotificationRingtonePreference;
+    private Preference mAlarmRingtonePreference;
     private TwoStatePreference mVibrateWhenRinging;
     private TwoStatePreference mMasterMono;
     private ComponentName mSuppressor;
@@ -324,6 +326,7 @@
         }
         mNotificationRingtonePreference =
                 getPreferenceScreen().findPreference(KEY_NOTIFICATION_RINGTONE);
+        mAlarmRingtonePreference = getPreferenceScreen().findPreference(KEY_ALARM_RINGTONE);
     }
 
     private void lookupRingtoneNames() {
@@ -347,6 +350,13 @@
                     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 @@
         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 @@
                 case UPDATE_MASTER_MONO:
                     updateMasterMono();
                     break;
+                case UPDATE_ALARM_RINGTONE:
+                    mAlarmRingtonePreference.setSummary((CharSequence) msg.obj);
+                    break;
             }
         }
     }