Merge "Reduce unnecessary NotificationListener binder transaction."
This commit is contained in:
13
services/core/java/com/android/server/notification/NotificationManagerService.java
Normal file → Executable file
13
services/core/java/com/android/server/notification/NotificationManagerService.java
Normal file → Executable file
@@ -1274,16 +1274,15 @@ public class NotificationManagerService extends SystemService {
|
||||
uidList = new int[] {intent.getIntExtra(Intent.EXTRA_UID, -1)};
|
||||
}
|
||||
if (pkgList != null && (pkgList.length > 0)) {
|
||||
for (String pkgName : pkgList) {
|
||||
if (cancelNotifications) {
|
||||
if (cancelNotifications) {
|
||||
for (String pkgName : pkgList) {
|
||||
cancelAllNotificationsInt(MY_UID, MY_PID, pkgName, null, 0, 0,
|
||||
!queryRestart, changeUserId, reason, null);
|
||||
} else if (hideNotifications) {
|
||||
hideNotificationsForPackages(pkgList);
|
||||
} else if (unhideNotifications) {
|
||||
unhideNotificationsForPackages(pkgList);
|
||||
}
|
||||
|
||||
} else if (hideNotifications) {
|
||||
hideNotificationsForPackages(pkgList);
|
||||
} else if (unhideNotifications) {
|
||||
unhideNotificationsForPackages(pkgList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
8
services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
Normal file → Executable file
8
services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
Normal file → Executable file
@@ -3601,7 +3601,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
||||
mService.simulatePackageDistractionBroadcast(
|
||||
PackageManager.RESTRICTION_HIDE_NOTIFICATIONS, new String[] {"a", "b"});
|
||||
ArgumentCaptor<List<NotificationRecord>> captorHide = ArgumentCaptor.forClass(List.class);
|
||||
verify(mListeners, times(2)).notifyHiddenLocked(captorHide.capture());
|
||||
|
||||
// should be called only once.
|
||||
verify(mListeners, times(1)).notifyHiddenLocked(captorHide.capture());
|
||||
assertEquals(2, captorHide.getValue().size());
|
||||
assertEquals("a", captorHide.getValue().get(0).sbn.getPackageName());
|
||||
assertEquals("b", captorHide.getValue().get(1).sbn.getPackageName());
|
||||
@@ -3610,7 +3612,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
||||
mService.simulatePackageDistractionBroadcast(
|
||||
PackageManager.RESTRICTION_HIDE_FROM_SUGGESTIONS, new String[] {"a", "b"});
|
||||
ArgumentCaptor<List<NotificationRecord>> captorUnhide = ArgumentCaptor.forClass(List.class);
|
||||
verify(mListeners, times(2)).notifyUnhiddenLocked(captorUnhide.capture());
|
||||
|
||||
// should be called only once.
|
||||
verify(mListeners, times(1)).notifyUnhiddenLocked(captorUnhide.capture());
|
||||
assertEquals(2, captorUnhide.getValue().size());
|
||||
assertEquals("a", captorUnhide.getValue().get(0).sbn.getPackageName());
|
||||
assertEquals("b", captorUnhide.getValue().get(1).sbn.getPackageName());
|
||||
|
||||
Reference in New Issue
Block a user