Fix a bug showing the background through a punch hole when switching bubbles.
Bug: 126856255
Test: Manual. Recorded screen and verified.
Change-Id: I2d29fc30b192c0d28c7d7e28b45ec7e01385a912
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index eb85589..e0ed111 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -118,6 +118,7 @@
private final BubbleTaskStackListener mTaskStackListener;
private BubbleStateChangeListener mStateChangeListener;
private BubbleExpandListener mExpandListener;
+ @Nullable private BubbleStackView.SurfaceSynchronizer mSurfaceSynchronizer;
private BubbleData mBubbleData;
private BubbleStackView mStackView;
@@ -178,7 +179,12 @@
@Inject
public BubbleController(Context context, StatusBarWindowController statusBarWindowController,
- BubbleData data) {
+ BubbleData data) {
+ this(context, statusBarWindowController, data, null /* synchronizer */);
+ }
+
+ public BubbleController(Context context, StatusBarWindowController statusBarWindowController,
+ BubbleData data, @Nullable BubbleStackView.SurfaceSynchronizer synchronizer) {
mContext = context;
mNotificationEntryManager = Dependency.get(NotificationEntryManager.class);
@@ -206,6 +212,7 @@
}
mBubbleData = data;
+ mSurfaceSynchronizer = synchronizer;
}
/**
@@ -297,7 +304,7 @@
mStackView.updateBubble(notif, updatePosition);
} else {
if (mStackView == null) {
- mStackView = new BubbleStackView(mContext, mBubbleData);
+ mStackView = new BubbleStackView(mContext, mBubbleData, mSurfaceSynchronizer);
ViewGroup sbv = mStatusBarWindowController.getStatusBarView();
// XXX: Bug when you expand the shade on top of expanded bubble, there is no scrim
// between bubble and the shade