Loading res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,12 @@ <!-- Label for the Settings activity displayed on-screen when that activity must be represented to the user. --> <string name="settings">Settings</string> <!-- Setting title for showing/hiding the alarm status bar icon --> <string name="show_status_bar_icon_title">Show icon</string> <!-- Setting summary for showing/hiding the alarm statusbar icon --> <string name="show_status_bar_icon_summary">Show an icon in the status bar when an alarm is set</string> <!-- Setting title for changing the snooze duration. --> <string name="snooze_duration_title">Snooze length</string> Loading res/xml/settings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -65,5 +65,11 @@ android:entries="@array/volume_button_setting_entries" android:entryValues="@array/volume_button_setting_values" android:defaultValue="0" /> <CheckBoxPreference android:key="show_status_bar_icon" android:title="@string/show_status_bar_icon_title" android:summary="@string/show_status_bar_icon_summary" android:defaultValue="true" /> </PreferenceCategory> </PreferenceScreen> src/com/android/deskclock/SettingsActivity.java +10 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.text.format.DateUtils; import android.view.Menu; import android.view.MenuItem; import com.android.deskclock.alarms.AlarmNotifications; import com.android.deskclock.worldclock.Cities; import java.util.ArrayList; Loading @@ -49,6 +50,8 @@ public class SettingsActivity extends PreferenceActivity public static final String KEY_ALARM_IN_SILENT_MODE = "alarm_in_silent_mode"; public static final String KEY_SHOW_STATUS_BAR_ICON = "show_status_bar_icon"; public static final String KEY_ALARM_SNOOZE = "snooze_duration"; public static final String KEY_VOLUME_BEHAVIOR = Loading Loading @@ -173,6 +176,10 @@ public class SettingsActivity extends PreferenceActivity final ListPreference listPref = (ListPreference) pref; final int idx = listPref.findIndexOfValue((String) newValue); listPref.setSummary(listPref.getEntries()[idx]); } else if (KEY_SHOW_STATUS_BAR_ICON.equals(pref.getKey())) { // Check if any alarms are active. If yes and // we allow showing the alarm icon, the icon will be shown. AlarmNotifications.updateStatusBarIcon(getApplicationContext(), (Boolean) newValue); } return true; } Loading Loading @@ -221,6 +228,9 @@ public class SettingsActivity extends PreferenceActivity listPref.setSummary(listPref.getEntry()); listPref.setOnPreferenceChangeListener(this); CheckBoxPreference hideStatusbarIcon = (CheckBoxPreference) findPreference(KEY_SHOW_STATUS_BAR_ICON); hideStatusbarIcon.setOnPreferenceChangeListener(this); SnoozeLengthDialog snoozePref = (SnoozeLengthDialog) findPreference(KEY_ALARM_SNOOZE); snoozePref.setSummary(); } Loading src/com/android/deskclock/alarms/AlarmNotifications.java +27 −4 Original line number Diff line number Diff line Loading @@ -20,14 +20,18 @@ import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.preference.PreferenceManager; import android.provider.Settings; import android.text.TextUtils; import com.android.deskclock.AlarmClockFragment; import com.android.deskclock.AlarmUtils; import com.android.deskclock.DeskClock; import com.android.deskclock.Log; import com.android.deskclock.R; import com.android.deskclock.SettingsActivity; import com.android.deskclock.provider.Alarm; import com.android.deskclock.provider.AlarmInstance; Loading @@ -39,10 +43,12 @@ public final class AlarmNotifications { public static void broadcastNextAlarm(Context context, AlarmInstance instance) { String timeString = ""; // Read the icon state preference before showing the icon, default to visible final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean showStatusIcon = false; if (instance != null) { timeString = AlarmUtils.getFormattedTime(context, instance.getAlarmTime()); showStatusIcon = true; showStatusIcon = prefs.getBoolean(SettingsActivity.KEY_SHOW_STATUS_BAR_ICON, true); } // Set and notify next alarm text to system Loading @@ -50,9 +56,7 @@ public final class AlarmNotifications { Settings.System.putString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED, timeString); Intent alarmChanged = new Intent(SYSTEM_ALARM_CHANGE_ACTION); alarmChanged.putExtra("alarmSet", showStatusIcon); context.sendBroadcast(alarmChanged); setStatusBarIcon(context, showStatusIcon); } public static void showLowPriorityNotification(Context context, AlarmInstance instance) { Loading Loading @@ -261,4 +265,23 @@ public final class AlarmNotifications { context.getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(instance.hashCode()); } public static void updateStatusBarIcon(Context context, boolean showStatusIcon) { String nextAlarm = getNextAlarm(context); if (!TextUtils.isEmpty(nextAlarm)) { setStatusBarIcon(context, showStatusIcon); } } private static String getNextAlarm(Context context) { String nextAlarm = Settings.System.getString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED); return nextAlarm; } private static void setStatusBarIcon(Context context, boolean showStatusIcon) { Intent alarmChanged = new Intent(SYSTEM_ALARM_CHANGE_ACTION); alarmChanged.putExtra("alarmSet", showStatusIcon); context.sendBroadcast(alarmChanged); } } Loading
res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,12 @@ <!-- Label for the Settings activity displayed on-screen when that activity must be represented to the user. --> <string name="settings">Settings</string> <!-- Setting title for showing/hiding the alarm status bar icon --> <string name="show_status_bar_icon_title">Show icon</string> <!-- Setting summary for showing/hiding the alarm statusbar icon --> <string name="show_status_bar_icon_summary">Show an icon in the status bar when an alarm is set</string> <!-- Setting title for changing the snooze duration. --> <string name="snooze_duration_title">Snooze length</string> Loading
res/xml/settings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -65,5 +65,11 @@ android:entries="@array/volume_button_setting_entries" android:entryValues="@array/volume_button_setting_values" android:defaultValue="0" /> <CheckBoxPreference android:key="show_status_bar_icon" android:title="@string/show_status_bar_icon_title" android:summary="@string/show_status_bar_icon_summary" android:defaultValue="true" /> </PreferenceCategory> </PreferenceScreen>
src/com/android/deskclock/SettingsActivity.java +10 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.text.format.DateUtils; import android.view.Menu; import android.view.MenuItem; import com.android.deskclock.alarms.AlarmNotifications; import com.android.deskclock.worldclock.Cities; import java.util.ArrayList; Loading @@ -49,6 +50,8 @@ public class SettingsActivity extends PreferenceActivity public static final String KEY_ALARM_IN_SILENT_MODE = "alarm_in_silent_mode"; public static final String KEY_SHOW_STATUS_BAR_ICON = "show_status_bar_icon"; public static final String KEY_ALARM_SNOOZE = "snooze_duration"; public static final String KEY_VOLUME_BEHAVIOR = Loading Loading @@ -173,6 +176,10 @@ public class SettingsActivity extends PreferenceActivity final ListPreference listPref = (ListPreference) pref; final int idx = listPref.findIndexOfValue((String) newValue); listPref.setSummary(listPref.getEntries()[idx]); } else if (KEY_SHOW_STATUS_BAR_ICON.equals(pref.getKey())) { // Check if any alarms are active. If yes and // we allow showing the alarm icon, the icon will be shown. AlarmNotifications.updateStatusBarIcon(getApplicationContext(), (Boolean) newValue); } return true; } Loading Loading @@ -221,6 +228,9 @@ public class SettingsActivity extends PreferenceActivity listPref.setSummary(listPref.getEntry()); listPref.setOnPreferenceChangeListener(this); CheckBoxPreference hideStatusbarIcon = (CheckBoxPreference) findPreference(KEY_SHOW_STATUS_BAR_ICON); hideStatusbarIcon.setOnPreferenceChangeListener(this); SnoozeLengthDialog snoozePref = (SnoozeLengthDialog) findPreference(KEY_ALARM_SNOOZE); snoozePref.setSummary(); } Loading
src/com/android/deskclock/alarms/AlarmNotifications.java +27 −4 Original line number Diff line number Diff line Loading @@ -20,14 +20,18 @@ import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.preference.PreferenceManager; import android.provider.Settings; import android.text.TextUtils; import com.android.deskclock.AlarmClockFragment; import com.android.deskclock.AlarmUtils; import com.android.deskclock.DeskClock; import com.android.deskclock.Log; import com.android.deskclock.R; import com.android.deskclock.SettingsActivity; import com.android.deskclock.provider.Alarm; import com.android.deskclock.provider.AlarmInstance; Loading @@ -39,10 +43,12 @@ public final class AlarmNotifications { public static void broadcastNextAlarm(Context context, AlarmInstance instance) { String timeString = ""; // Read the icon state preference before showing the icon, default to visible final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean showStatusIcon = false; if (instance != null) { timeString = AlarmUtils.getFormattedTime(context, instance.getAlarmTime()); showStatusIcon = true; showStatusIcon = prefs.getBoolean(SettingsActivity.KEY_SHOW_STATUS_BAR_ICON, true); } // Set and notify next alarm text to system Loading @@ -50,9 +56,7 @@ public final class AlarmNotifications { Settings.System.putString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED, timeString); Intent alarmChanged = new Intent(SYSTEM_ALARM_CHANGE_ACTION); alarmChanged.putExtra("alarmSet", showStatusIcon); context.sendBroadcast(alarmChanged); setStatusBarIcon(context, showStatusIcon); } public static void showLowPriorityNotification(Context context, AlarmInstance instance) { Loading Loading @@ -261,4 +265,23 @@ public final class AlarmNotifications { context.getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(instance.hashCode()); } public static void updateStatusBarIcon(Context context, boolean showStatusIcon) { String nextAlarm = getNextAlarm(context); if (!TextUtils.isEmpty(nextAlarm)) { setStatusBarIcon(context, showStatusIcon); } } private static String getNextAlarm(Context context) { String nextAlarm = Settings.System.getString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED); return nextAlarm; } private static void setStatusBarIcon(Context context, boolean showStatusIcon) { Intent alarmChanged = new Intent(SYSTEM_ALARM_CHANGE_ACTION); alarmChanged.putExtra("alarmSet", showStatusIcon); context.sendBroadcast(alarmChanged); } }