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