summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Lemieux <jplemieux@google.com>2016-01-20 18:23:00 -0800
committerJames Lemieux <jplemieux@google.com>2016-01-20 18:23:00 -0800
commitac1506f175631e2b2f52ff9142cbdc6c725ef447 (patch)
tree8a11a0446075dc6cc183122b0888d19aaba633af
parenta21a311d051856e4fe9d2f43d144953535749ddf (diff)
downloadandroid_packages_apps_DeskClock-ac1506f175631e2b2f52ff9142cbdc6c725ef447.tar.gz
android_packages_apps_DeskClock-ac1506f175631e2b2f52ff9142cbdc6c725ef447.tar.bz2
android_packages_apps_DeskClock-ac1506f175631e2b2f52ff9142cbdc6c725ef447.zip
Rebuild notifications after app upgrade
Bug: 26676584 Change-Id: If6e905328265ad626ad9cc19b0ff6f128bdfe3a4
-rw-r--r--src/com/android/deskclock/AlarmInitReceiver.java7
-rw-r--r--src/com/android/deskclock/data/DataModel.java9
2 files changed, 16 insertions, 0 deletions
diff --git a/src/com/android/deskclock/AlarmInitReceiver.java b/src/com/android/deskclock/AlarmInitReceiver.java
index e605796e0..84989a7ca 100644
--- a/src/com/android/deskclock/AlarmInitReceiver.java
+++ b/src/com/android/deskclock/AlarmInitReceiver.java
@@ -35,6 +35,7 @@ public class AlarmInitReceiver extends BroadcastReceiver {
* <li>Reset timers and stopwatch on ACTION_BOOT_COMPLETED</li>
* <li>Fix alarm states on ACTION_BOOT_COMPLETED, TIME_SET, TIMEZONE_CHANGED,
* and LOCALE_CHANGED</li>
+ * <li>Rebuild notifications on MY_PACKAGE_REPLACED</li>
* </ul>
*/
@Override
@@ -58,6 +59,12 @@ public class AlarmInitReceiver extends BroadcastReceiver {
DataModel.getDataModel().resetTimers(R.string.label_reboot);
}
+ // Notifications are canceled by the system on application upgrade. This broadcast signals
+ // that the new app is free to rebuild the notifications using the existing data.
+ if (Intent.ACTION_MY_PACKAGE_REPLACED.equals(action)) {
+ DataModel.getDataModel().updateAllNotifications();
+ }
+
AsyncHandler.post(new Runnable() {
@Override
public void run() {
diff --git a/src/com/android/deskclock/data/DataModel.java b/src/com/android/deskclock/data/DataModel.java
index 482025096..382beb39e 100644
--- a/src/com/android/deskclock/data/DataModel.java
+++ b/src/com/android/deskclock/data/DataModel.java
@@ -152,6 +152,15 @@ public final class DataModel {
return mNotificationModel.isApplicationInForeground();
}
+ /**
+ * Called when the notifications may be stale or absent from the notification manager and must
+ * be rebuilt. e.g. after upgrading the application
+ */
+ public void updateAllNotifications() {
+ mTimerModel.updateNotification();
+ mStopwatchModel.updateNotification();
+ }
+
//
// Cities
//