summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
index 1755cc68bee2..2c8339a1dc22 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
@@ -42,7 +42,7 @@ public class NotificationGroupManager implements HeadsUpManager.OnHeadsUpChanged
private int mBarState = -1;
private HashMap<String, StatusBarNotification> mIsolatedEntries = new HashMap<>();
private HeadsUpManager mHeadsUpManager;
- private boolean mUpdatingSuppressionBlocked;
+ private boolean mIsUpdatingUnchangedGroup;
public void setOnGroupChangeListener(OnGroupChangeListener listener) {
mListener = listener;
@@ -141,7 +141,7 @@ public class NotificationGroupManager implements HeadsUpManager.OnHeadsUpChanged
}
private void updateSuppression(NotificationGroup group) {
- if (group == null || mUpdatingSuppressionBlocked) {
+ if (group == null) {
return;
}
boolean prevSuppressed = group.suppressed;
@@ -154,7 +154,9 @@ public class NotificationGroupManager implements HeadsUpManager.OnHeadsUpChanged
if (group.suppressed) {
handleSuppressedSummaryHeadsUpped(group.summary);
}
- mListener.onGroupsChanged();
+ if (!mIsUpdatingUnchangedGroup) {
+ mListener.onGroupsChanged();
+ }
}
}
@@ -188,12 +190,12 @@ public class NotificationGroupManager implements HeadsUpManager.OnHeadsUpChanged
boolean groupKeysChanged = !oldKey.equals(newKey);
boolean wasGroupChild = isGroupChild(oldNotification);
boolean isGroupChild = isGroupChild(entry.notification);
- mUpdatingSuppressionBlocked = !groupKeysChanged && wasGroupChild == isGroupChild;
+ mIsUpdatingUnchangedGroup = !groupKeysChanged && wasGroupChild == isGroupChild;
if (mGroupMap.get(getGroupKey(oldNotification)) != null) {
onEntryRemovedInternal(entry, oldNotification);
}
onEntryAdded(entry);
- mUpdatingSuppressionBlocked = false;
+ mIsUpdatingUnchangedGroup = false;
if (isIsolated(entry.notification)) {
mIsolatedEntries.put(entry.key, entry.notification);
if (groupKeysChanged) {