Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +6 −8 Original line number Diff line number Diff line Loading @@ -560,7 +560,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi // Need to check for !appCancel here because the notification may have // previously been dismissed & entry.isRowDismissed would still be true boolean userRemovedNotif = (entry.isRowDismissed() && !isAppCancel) boolean userRemovedNotif = (entry != null && entry.isRowDismissed() && !isAppCancel) || isClearAll || isUserDimiss || isSummaryCancel; if (isSummaryOfBubbles) { Loading @@ -570,7 +570,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi // The bubble notification sticks around in the data as long as the bubble is // not dismissed and the app hasn't cancelled the notification. Bubble bubble = mBubbleData.getBubbleWithKey(key); boolean bubbleExtended = entry.isBubble() && userRemovedNotif; boolean bubbleExtended = entry != null && entry.isBubble() && userRemovedNotif; if (bubbleExtended) { bubble.setShowInShadeWhenBubble(false); bubble.setShowBubbleDot(false); Loading @@ -579,7 +579,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi } mNotificationEntryManager.updateNotifications(); return true; } else if (!userRemovedNotif) { } else if (!userRemovedNotif && entry != null) { // This wasn't a user removal so we should remove the bubble as well mBubbleData.notificationEntryRemoved(entry, DISMISS_NOTIF_CANCEL); return false; Loading Loading @@ -939,13 +939,11 @@ public class BubbleController implements ConfigurationController.ConfigurationLi final Bubble expandedBubble = mStackView != null ? mStackView.getExpandedBubble() : null; if (expandedBubble == null) { return; } if (expandedBubble.getDisplayId() == displayId) { int expandedId = expandedBubble != null ? expandedBubble.getDisplayId() : -1; if (mStackView != null && mStackView.isExpanded() && expandedId == displayId) { mBubbleData.setExpanded(false); expandedBubble.getExpandedView().notifyDisplayEmpty(); } mBubbleData.notifyDisplayEmpty(displayId); } } Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java +16 −0 Original line number Diff line number Diff line Loading @@ -392,6 +392,22 @@ public class BubbleData { dispatchPendingChanges(); } /** * Indicates that the provided display is no longer in use and should be cleaned up. * * @param displayId the id of the display to clean up. */ void notifyDisplayEmpty(int displayId) { for (Bubble b : mBubbles) { if (b.getDisplayId() == displayId) { if (b.getExpandedView() != null) { b.getExpandedView().notifyDisplayEmpty(); } return; } } } private void dispatchPendingChanges() { if (mListener != null && mStateChange.anythingChanged()) { mListener.applyUpdate(mStateChange); Loading Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +6 −8 Original line number Diff line number Diff line Loading @@ -560,7 +560,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi // Need to check for !appCancel here because the notification may have // previously been dismissed & entry.isRowDismissed would still be true boolean userRemovedNotif = (entry.isRowDismissed() && !isAppCancel) boolean userRemovedNotif = (entry != null && entry.isRowDismissed() && !isAppCancel) || isClearAll || isUserDimiss || isSummaryCancel; if (isSummaryOfBubbles) { Loading @@ -570,7 +570,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi // The bubble notification sticks around in the data as long as the bubble is // not dismissed and the app hasn't cancelled the notification. Bubble bubble = mBubbleData.getBubbleWithKey(key); boolean bubbleExtended = entry.isBubble() && userRemovedNotif; boolean bubbleExtended = entry != null && entry.isBubble() && userRemovedNotif; if (bubbleExtended) { bubble.setShowInShadeWhenBubble(false); bubble.setShowBubbleDot(false); Loading @@ -579,7 +579,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi } mNotificationEntryManager.updateNotifications(); return true; } else if (!userRemovedNotif) { } else if (!userRemovedNotif && entry != null) { // This wasn't a user removal so we should remove the bubble as well mBubbleData.notificationEntryRemoved(entry, DISMISS_NOTIF_CANCEL); return false; Loading Loading @@ -939,13 +939,11 @@ public class BubbleController implements ConfigurationController.ConfigurationLi final Bubble expandedBubble = mStackView != null ? mStackView.getExpandedBubble() : null; if (expandedBubble == null) { return; } if (expandedBubble.getDisplayId() == displayId) { int expandedId = expandedBubble != null ? expandedBubble.getDisplayId() : -1; if (mStackView != null && mStackView.isExpanded() && expandedId == displayId) { mBubbleData.setExpanded(false); expandedBubble.getExpandedView().notifyDisplayEmpty(); } mBubbleData.notifyDisplayEmpty(displayId); } } Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java +16 −0 Original line number Diff line number Diff line Loading @@ -392,6 +392,22 @@ public class BubbleData { dispatchPendingChanges(); } /** * Indicates that the provided display is no longer in use and should be cleaned up. * * @param displayId the id of the display to clean up. */ void notifyDisplayEmpty(int displayId) { for (Bubble b : mBubbles) { if (b.getDisplayId() == displayId) { if (b.getExpandedView() != null) { b.getExpandedView().notifyDisplayEmpty(); } return; } } } private void dispatchPendingChanges() { if (mListener != null && mStateChange.anythingChanged()) { mListener.applyUpdate(mStateChange); Loading