Merge "Update NotificationRecord of snooze even after it is cancelled"
am: 10f4d427cd
Change-Id: Ibd4367f14ee326acfba3bb54ee701e8b0265aebf
diff --git a/services/core/java/com/android/server/notification/SnoozeHelper.java b/services/core/java/com/android/server/notification/SnoozeHelper.java
index abc9841..fbb6d6a 100644
--- a/services/core/java/com/android/server/notification/SnoozeHelper.java
+++ b/services/core/java/com/android/server/notification/SnoozeHelper.java
@@ -231,9 +231,6 @@
return;
}
NotificationRecord existing = pkgRecords.get(record.getKey());
- if (existing != null && existing.isCanceled) {
- return;
- }
pkgRecords.put(record.getKey(), record);
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
index 1e64543..8939375 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
@@ -227,6 +227,26 @@
}
@Test
+ public void testUpdateAfterCancel() throws Exception {
+ // snooze a notification
+ NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
+ mSnoozeHelper.snooze(r , 1000);
+
+ // cancel the notification
+ mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, false);
+
+ // update the notification
+ r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
+ mSnoozeHelper.update(UserHandle.USER_SYSTEM, r);
+
+ // verify callback is called when repost (snooze is expired)
+ verify(mCallback, never()).repost(anyInt(), any(NotificationRecord.class));
+ mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM);
+ verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r);
+ assertFalse(r.isCanceled);
+ }
+
+ @Test
public void testGetSnoozedByUser() throws Exception {
NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
NotificationRecord r2 = getNotificationRecord("pkg", 2, "two", UserHandle.SYSTEM);