am 3a4bd4c6: Fix midnight date rollover in DeskClock screensaver.
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 31897c0..403c082 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -234,6 +234,9 @@
       <item>2</item>
     </string-array>
 
+    <!-- Title of the ringtone setting. -->
+    <string name="default_ringtone_setting_title">Set default ringtone</string>
+
     <!-- Accessibility labels for Clock activity buttons --><skip/>
     <string name="alarm_button_description">Alarms</string>
     <string name="gallery_button_description">Gallery</string>
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index 3a7b775..786b52c 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -47,4 +47,12 @@
         android:summary="@string/volume_button_setting_summary"
         android:defaultValue="2" />
 
+    <com.android.deskclock.AlarmPreference
+        android:key="default_ringtone"
+        android:title="@string/default_ringtone_setting_title"
+        android:ringtoneType="alarm"
+        android:showDefault="false"
+        android:persistent="false"
+        android:showSilent="true" />
+
 </PreferenceScreen>
diff --git a/src/com/android/deskclock/AlarmPreference.java b/src/com/android/deskclock/AlarmPreference.java
index 8f1170e..d0136dd 100644
--- a/src/com/android/deskclock/AlarmPreference.java
+++ b/src/com/android/deskclock/AlarmPreference.java
@@ -21,6 +21,7 @@
 import android.media.RingtoneManager;
 import android.net.Uri;
 import android.preference.RingtonePreference;
+import android.provider.Settings;
 import android.util.AttributeSet;
 
 /**
@@ -29,6 +30,7 @@
  */
 public class AlarmPreference extends RingtonePreference {
     private Uri mAlert;
+    private boolean mChangeDefault;
 
     public AlarmPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -37,6 +39,12 @@
     @Override
     protected void onSaveRingtone(Uri ringtoneUri) {
         setAlert(ringtoneUri);
+        if (mChangeDefault) {
+            // Update the default alert in the system.
+            Settings.System.putString(getContext().getContentResolver(),
+                    Settings.System.ALARM_ALERT,
+                    ringtoneUri == null ? null : ringtoneUri.toString());
+        }
     }
 
     @Override
@@ -63,4 +71,8 @@
     public Uri getAlert() {
         return mAlert;
     }
+
+    public void setChangeDefault() {
+        mChangeDefault = true;
+    }
 }
diff --git a/src/com/android/deskclock/SettingsActivity.java b/src/com/android/deskclock/SettingsActivity.java
index f28d1e7..71b32a0 100644
--- a/src/com/android/deskclock/SettingsActivity.java
+++ b/src/com/android/deskclock/SettingsActivity.java
@@ -16,13 +16,17 @@
 
 package com.android.deskclock;
 
+import android.content.SharedPreferences;
 import android.media.AudioManager;
+import android.media.RingtoneManager;
+import android.net.Uri;
 import android.os.Bundle;
 import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
+import android.preference.RingtonePreference;
 import android.provider.Settings;
 
 /**
@@ -40,11 +44,22 @@
             "snooze_duration";
     static final String KEY_VOLUME_BEHAVIOR =
             "volume_button_setting";
+    static final String KEY_DEFAULT_RINGTONE =
+            "default_ringtone";
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.settings);
+
+        final AlarmPreference ringtone =
+                (AlarmPreference) findPreference(KEY_DEFAULT_RINGTONE);
+        Uri alert = RingtoneManager.getActualDefaultRingtoneUri(this,
+                RingtoneManager.TYPE_ALARM);
+        if (alert != null) {
+            ringtone.setAlert(alert);
+        }
+        ringtone.setChangeDefault();
     }
 
     @Override