Hide bubbles when focus mode is enabled

Bug: 191211593
Test: Manual, verifed that pre-existing bubbles are not visible once focus mode is eanbled and vice versa.
Test: Screen recording: https://drive.google.com/file/d/1oVwgQhv7yyzy5UFnidNYPVyE2pvEE39J/view?usp=sharing
Change-Id: I7c287b9d00ecaa0dba582b49f70a9f8fb7701782
This commit is contained in:
Sergey Serokurov
2021-10-30 21:47:22 -07:00
parent 91da8a2976
commit 102451972f

View File

@@ -1028,13 +1028,16 @@ public class BubbleController {
// If this entry is no longer allowed to bubble, dismiss with the BLOCKED reason.
// This means that the app or channel's ability to bubble has been revoked.
mBubbleData.dismissBubbleWithKey(key, DISMISS_BLOCKED);
} else if (isActiveBubble && !shouldBubbleUp) {
// If this entry is allowed to bubble, but cannot currently bubble up, dismiss it.
// This happens when DND is enabled and configured to hide bubbles. Dismissing with
// the reason DISMISS_NO_BUBBLE_UP will retain the underlying notification, so that
// the bubble will be re-created if shouldBubbleUp returns true.
} else if (isActiveBubble && (!shouldBubbleUp || entry.getRanking().isSuspended())) {
// If this entry is allowed to bubble, but cannot currently bubble up or is
// suspended, dismiss it. This happens when DND is enabled and configured to hide
// bubbles, or focus mode is enabled and the app is designated as distracting.
// Dismissing with the reason DISMISS_NO_BUBBLE_UP will retain the underlying
// notification, so that the bubble will be re-created if shouldBubbleUp returns
// true.
mBubbleData.dismissBubbleWithKey(key, DISMISS_NO_BUBBLE_UP);
} else if (entry != null && mTmpRanking.isBubble() && !isActiveBubble) {
} else if (entry != null && mTmpRanking.isBubble() && !isActiveBubble
&& !entry.getRanking().isSuspended()) {
entry.setFlagBubble(true);
onEntryUpdated(entry, true /* shouldBubbleUp */);
}