diff options
| author | 2022-07-19 18:33:44 +0000 | |
|---|---|---|
| committer | 2022-07-19 18:33:44 +0000 | |
| commit | 8dc1ff7f7f7f6781b7e2bf402877d45b22ec0885 (patch) | |
| tree | 733ec5956015c6a18b136c03ecbd21d95f6902b1 | |
| parent | f0b270614f730e2f365e58a048063f666d3ff7db (diff) | |
| parent | 9af30793f0cfe4c8789a52b78fff67268df9cfad (diff) | |
Merge "Revert "Limit the number of concurrently snoozed notifications"" into tm-dev am: 9af30793f0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19340631
Change-Id: If546c3e1225cb3d29929be271e66757760cc131e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
4 files changed, 15 insertions, 117 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 88f543260871..d1e0b0474b61 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -7030,7 +7030,6 @@ public class NotificationManagerService extends SystemService { @GuardedBy("mNotificationLock") void snoozeLocked(NotificationRecord r) { - final List<NotificationRecord> recordsToSnooze = new ArrayList<>(); if (r.getSbn().isGroup()) { final List<NotificationRecord> groupNotifications = findCurrentAndSnoozedGroupNotificationsLocked( @@ -7039,8 +7038,8 @@ public class NotificationManagerService extends SystemService { if (r.getNotification().isGroupSummary()) { // snooze all children for (int i = 0; i < groupNotifications.size(); i++) { - if (!mKey.equals(groupNotifications.get(i).getKey())) { - recordsToSnooze.add(groupNotifications.get(i)); + if (mKey != groupNotifications.get(i).getKey()) { + snoozeNotificationLocked(groupNotifications.get(i)); } } } else { @@ -7050,8 +7049,8 @@ public class NotificationManagerService extends SystemService { if (groupNotifications.size() == 2) { // snooze summary and the one child for (int i = 0; i < groupNotifications.size(); i++) { - if (!mKey.equals(groupNotifications.get(i).getKey())) { - recordsToSnooze.add(groupNotifications.get(i)); + if (mKey != groupNotifications.get(i).getKey()) { + snoozeNotificationLocked(groupNotifications.get(i)); } } } @@ -7059,15 +7058,7 @@ public class NotificationManagerService extends SystemService { } } // snooze the notification - recordsToSnooze.add(r); - - if (mSnoozeHelper.canSnooze(recordsToSnooze.size())) { - for (int i = 0; i < recordsToSnooze.size(); i++) { - snoozeNotificationLocked(recordsToSnooze.get(i)); - } - } else { - Log.w(TAG, "Cannot snooze " + r.getKey() + ": too many snoozed notifications"); - } + snoozeNotificationLocked(r); } diff --git a/services/core/java/com/android/server/notification/SnoozeHelper.java b/services/core/java/com/android/server/notification/SnoozeHelper.java index 15d7c1e7a210..7f265df3f416 100644 --- a/services/core/java/com/android/server/notification/SnoozeHelper.java +++ b/services/core/java/com/android/server/notification/SnoozeHelper.java @@ -62,8 +62,6 @@ import java.util.Set; public class SnoozeHelper { public static final int XML_SNOOZED_NOTIFICATION_VERSION = 1; - static final int CONCURRENT_SNOOZE_LIMIT = 500; - protected static final String XML_TAG_NAME = "snoozed-notifications"; private static final String XML_SNOOZED_NOTIFICATION = "notification"; @@ -137,15 +135,6 @@ public class SnoozeHelper { } } - protected boolean canSnooze(int numberToSnooze) { - synchronized (mLock) { - if ((mPackages.size() + numberToSnooze) > CONCURRENT_SNOOZE_LIMIT) { - return false; - } - } - return true; - } - @NonNull protected Long getSnoozeTimeForUnpostedNotification(int userId, String pkg, String key) { Long time = null; diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java index b1b323b734bd..22721a1bcc92 100755 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java @@ -3380,80 +3380,19 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { } @Test - public void testSnoozeRunnable_tooManySnoozed_singleNotification() { - final NotificationRecord notification = generateNotificationRecord( - mTestNotificationChannel, 1, null, true); - mService.addNotification(notification); - - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); - when(mSnoozeHelper.canSnooze(1)).thenReturn(false); - - NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = - mService.new SnoozeNotificationRunnable( - notification.getKey(), 100, null); - snoozeNotificationRunnable.run(); - - verify(mSnoozeHelper, never()).snooze(any(NotificationRecord.class), anyLong()); - assertThat(mService.getNotificationRecordCount()).isEqualTo(1); - } - - @Test - public void testSnoozeRunnable_tooManySnoozed_singleGroupChildNotification() { - final NotificationRecord notification = generateNotificationRecord( - mTestNotificationChannel, 1, "group", true); - final NotificationRecord notificationChild = generateNotificationRecord( - mTestNotificationChannel, 1, "group", false); - mService.addNotification(notification); - mService.addNotification(notificationChild); - - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); - when(mSnoozeHelper.canSnooze(2)).thenReturn(false); - - NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = - mService.new SnoozeNotificationRunnable( - notificationChild.getKey(), 100, null); - snoozeNotificationRunnable.run(); - - verify(mSnoozeHelper, never()).snooze(any(NotificationRecord.class), anyLong()); - assertThat(mService.getNotificationRecordCount()).isEqualTo(2); - } - - @Test - public void testSnoozeRunnable_tooManySnoozed_summaryNotification() { - final NotificationRecord notification = generateNotificationRecord( - mTestNotificationChannel, 1, "group", true); - final NotificationRecord notificationChild = generateNotificationRecord( - mTestNotificationChannel, 12, "group", false); - final NotificationRecord notificationChild2 = generateNotificationRecord( - mTestNotificationChannel, 13, "group", false); - mService.addNotification(notification); - mService.addNotification(notificationChild); - mService.addNotification(notificationChild2); - - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); - when(mSnoozeHelper.canSnooze(3)).thenReturn(false); - - NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = - mService.new SnoozeNotificationRunnable( - notification.getKey(), 100, null); - snoozeNotificationRunnable.run(); - - verify(mSnoozeHelper, never()).snooze(any(NotificationRecord.class), anyLong()); - assertThat(mService.getNotificationRecordCount()).isEqualTo(3); - } - - @Test - public void testSnoozeRunnable_reSnoozeASingleSnoozedNotification() { + public void testSnoozeRunnable_reSnoozeASingleSnoozedNotification() throws Exception { final NotificationRecord notification = generateNotificationRecord( mTestNotificationChannel, 1, null, true); mService.addNotification(notification); when(mSnoozeHelper.getNotification(any())).thenReturn(notification); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( notification.getKey(), 100, null); snoozeNotificationRunnable.run(); + NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable2 = + mService.new SnoozeNotificationRunnable( + notification.getKey(), 100, null); snoozeNotificationRunnable.run(); // snooze twice @@ -3461,17 +3400,19 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { } @Test - public void testSnoozeRunnable_reSnoozeASnoozedNotificationWithGroupKey() { + public void testSnoozeRunnable_reSnoozeASnoozedNotificationWithGroupKey() throws Exception { final NotificationRecord notification = generateNotificationRecord( mTestNotificationChannel, 1, "group", true); mService.addNotification(notification); when(mSnoozeHelper.getNotification(any())).thenReturn(notification); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( notification.getKey(), 100, null); snoozeNotificationRunnable.run(); + NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable2 = + mService.new SnoozeNotificationRunnable( + notification.getKey(), 100, null); snoozeNotificationRunnable.run(); // snooze twice @@ -3489,7 +3430,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { when(mSnoozeHelper.getNotification(any())).thenReturn(notification); when(mSnoozeHelper.getNotifications( anyString(), anyString(), anyInt())).thenReturn(new ArrayList<>()); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( @@ -3499,8 +3439,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { .thenReturn(new ArrayList<>(Arrays.asList(notification, notification2))); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable2 = mService.new SnoozeNotificationRunnable( - notification2.getKey(), 100, null); - snoozeNotificationRunnable2.run(); + notification.getKey(), 100, null); + snoozeNotificationRunnable.run(); // snooze twice verify(mSnoozeHelper, times(4)).snooze(any(NotificationRecord.class), anyLong()); @@ -3514,7 +3454,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { mTestNotificationChannel, 2, "group", false); mService.addNotification(grouped); mService.addNotification(nonGrouped); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( @@ -3544,7 +3483,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { mService.addNotification(parent); mService.addNotification(child); mService.addNotification(child2); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( @@ -3566,7 +3504,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { mService.addNotification(parent); mService.addNotification(child); mService.addNotification(child2); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( @@ -3592,7 +3529,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { mTestNotificationChannel, 2, "group", false); mService.addNotification(parent); mService.addNotification(child); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( @@ -3620,7 +3556,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { final NotificationRecord child = generateNotificationRecord( mTestNotificationChannel, 2, "group", false); mService.addNotification(child); - when(mSnoozeHelper.canSnooze(anyInt())).thenReturn(true); NotificationManagerService.SnoozeNotificationRunnable snoozeNotificationRunnable = mService.new SnoozeNotificationRunnable( 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 8bead5774548..2ae2ef7162a5 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java @@ -15,7 +15,6 @@ */ package com.android.server.notification; -import static com.android.server.notification.SnoozeHelper.CONCURRENT_SNOOZE_LIMIT; import static com.android.server.notification.SnoozeHelper.EXTRA_KEY; import static junit.framework.Assert.assertEquals; @@ -282,22 +281,6 @@ public class SnoozeHelperTest extends UiServiceTestCase { } @Test - public void testSnoozeLimit() { - for (int i = 0; i < CONCURRENT_SNOOZE_LIMIT; i++ ) { - NotificationRecord r = getNotificationRecord("pkg", i, i+"", UserHandle.SYSTEM); - - assertTrue("cannot snooze record " + i, mSnoozeHelper.canSnooze(1)); - - if (i % 2 == 0) { - mSnoozeHelper.snooze(r, null); - } else { - mSnoozeHelper.snooze(r, 9000); - } - } - assertFalse(mSnoozeHelper.canSnooze(1)); - } - - @Test public void testCancelByApp() throws Exception { NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM); NotificationRecord r2 = getNotificationRecord("pkg", 2, "two", UserHandle.SYSTEM); |