summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/notification/SnoozeHelper.java3
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java20
2 files changed, 20 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/notification/SnoozeHelper.java b/services/core/java/com/android/server/notification/SnoozeHelper.java
index abc98412e126..fbb6d6a06433 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 @@ public class SnoozeHelper {
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 1e645436e7ea..8939375f7ebe 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 @@ public class SnoozeHelperTest extends UiServiceTestCase {
}
@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);