summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author woongki min <wk0831.min@samsung.com> 2022-01-15 13:15:07 +0900
committer Julia Reynolds <juliacr@google.com> 2022-04-11 19:54:12 +0000
commit0ab7642f30aefd8e472304f5d379348bc6b5347d (patch)
tree360716ac7e51431a8200e84605cb44fa53c76735
parentc4227ee28f3a4aca30fc5e353e09cd50bcc39b4e (diff)
Fix autogroupsummary bug
Summary cannot be updated with key after notification is removed from NotificationsByKey. So OngoingFlag of Autogrounpsummary remains. Modify the GroupHelper interface to deliver summary updateable information. Test: Make autogroupsummary. Test: update one of notification with ongoing flag. Test: cancel the notification and check flag of autogroupsummary. Change-Id: I0d14daaa69a94c1a3fe81b12d16b44e3a78281fe Merged-In: I0d14daaa69a94c1a3fe81b12d16b44e3a78281fe
-rw-r--r--services/core/java/com/android/server/notification/GroupHelper.java4
-rwxr-xr-xservices/core/java/com/android/server/notification/NotificationManagerService.java12
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java14
3 files changed, 11 insertions, 19 deletions
diff --git a/services/core/java/com/android/server/notification/GroupHelper.java b/services/core/java/com/android/server/notification/GroupHelper.java
index 9cb8a0105286..4f2680904fae 100644
--- a/services/core/java/com/android/server/notification/GroupHelper.java
+++ b/services/core/java/com/android/server/notification/GroupHelper.java
@@ -82,7 +82,7 @@ public class GroupHelper {
}
String combinedKey = generatePackageGroupKey(userId, sbn.getPackageName(), group);
boolean needsOngoingFlag = notifications.size() > 0;
- mCallback.updateAutogroupSummary(sbn.getKey(), needsOngoingFlag);
+ mCallback.updateAutogroupSummary(userId, sbn.getPackageName(), needsOngoingFlag);
}
public void onNotificationUpdated(StatusBarNotification childSbn,
@@ -211,6 +211,6 @@ public class GroupHelper {
void removeAutoGroup(String key);
void addAutoGroupSummary(int userId, String pkg, String triggeringKey);
void removeAutoGroupSummary(int user, String pkg);
- void updateAutogroupSummary(String key, boolean needsOngoingFlag);
+ void updateAutogroupSummary(int userId, String pkg, boolean needsOngoingFlag);
}
}
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 211f8d6e3ec7..d9f2e97829a1 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -2498,19 +2498,11 @@ public class NotificationManagerService extends SystemService {
}
@Override
- public void updateAutogroupSummary(String key, boolean needsOngoingFlag) {
- String pkg;
- synchronized (mNotificationLock) {
- NotificationRecord r = mNotificationsByKey.get(key);
- pkg = r != null && r.getSbn() != null ? r.getSbn().getPackageName() : null;
- }
+ public void updateAutogroupSummary(int userId, String pkg, boolean needsOngoingFlag) {
boolean isAppForeground = pkg != null
&& mActivityManager.getPackageImportance(pkg) == IMPORTANCE_FOREGROUND;
synchronized (mNotificationLock) {
- NotificationRecord r = mNotificationsByKey.get(key);
- if (r == null) return;
- updateAutobundledSummaryFlags(r.getUser().getIdentifier(),
- r.getSbn().getPackageName(), needsOngoingFlag, isAppForeground);
+ updateAutobundledSummaryFlags(userId, pkg, needsOngoingFlag, isAppForeground);
}
}
});
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java
index 721641a7a8c8..5458a5b84eea 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java
@@ -174,7 +174,7 @@ public class GroupHelperTest extends UiServiceTestCase {
}
verify(mCallback, times(AUTOGROUP_AT_COUNT + 1))
- .updateAutogroupSummary(anyString(), eq(true));
+ .updateAutogroupSummary(anyInt(), anyString(), eq(true));
int userId = UserHandle.SYSTEM.getIdentifier();
assertEquals(mGroupHelper.getOngoingGroupCount(
@@ -203,7 +203,7 @@ public class GroupHelperTest extends UiServiceTestCase {
mGroupHelper.onNotificationUpdated(notifications.get(0), true);
verify(mCallback, times(AUTOGROUP_AT_COUNT + 2))
- .updateAutogroupSummary(anyString(), eq(true));
+ .updateAutogroupSummary(anyInt(), anyString(), eq(true));
int userId = UserHandle.SYSTEM.getIdentifier();
assertEquals(mGroupHelper.getOngoingGroupCount(
@@ -236,7 +236,7 @@ public class GroupHelperTest extends UiServiceTestCase {
mGroupHelper.onNotificationUpdated(notifications.get(0), true);
verify(mCallback, times(AUTOGROUP_AT_COUNT + 3))
- .updateAutogroupSummary(anyString(), eq(true));
+ .updateAutogroupSummary(anyInt(), anyString(), eq(true));
int userId = UserHandle.SYSTEM.getIdentifier();
assertEquals(mGroupHelper.getOngoingGroupCount(
@@ -263,7 +263,7 @@ public class GroupHelperTest extends UiServiceTestCase {
mGroupHelper.onNotificationRemoved(notifications.get(0));
verify(mCallback, times(AUTOGROUP_AT_COUNT + 2))
- .updateAutogroupSummary(anyString(), eq(true));
+ .updateAutogroupSummary(anyInt(), anyString(), eq(true));
int userId = UserHandle.SYSTEM.getIdentifier();
assertEquals(mGroupHelper.getOngoingGroupCount(
@@ -291,7 +291,7 @@ public class GroupHelperTest extends UiServiceTestCase {
mGroupHelper.onNotificationUpdated(notifications.get(0), true);
verify(mCallback, times(1))
- .updateAutogroupSummary(anyString(), eq(true));
+ .updateAutogroupSummary(anyInt(), anyString(), eq(true));
int userId = UserHandle.SYSTEM.getIdentifier();
assertEquals(mGroupHelper.getOngoingGroupCount(
@@ -315,7 +315,7 @@ public class GroupHelperTest extends UiServiceTestCase {
}
verify(mCallback, times(1))
- .updateAutogroupSummary(anyString(), eq(true));
+ .updateAutogroupSummary(anyInt(), anyString(), eq(true));
int userId = UserHandle.SYSTEM.getIdentifier();
assertEquals(mGroupHelper.getOngoingGroupCount(
@@ -339,7 +339,7 @@ public class GroupHelperTest extends UiServiceTestCase {
}
verify(mCallback, times(0))
- .updateAutogroupSummary(anyString(), eq(true));
+ .updateAutogroupSummary(anyInt(), anyString(), eq(true));
int userId = UserHandle.SYSTEM.getIdentifier();
assertEquals(mGroupHelper.getOngoingGroupCount(userId, pkg, AUTOGROUP_KEY), 0);