Merge "Ensure the overflow is added first to the bubble bar" into udc-qpr-dev am: 434c907531

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23781224

Change-Id: I42a2b1c734872d0aa84bb0b38227965a593af881
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-06-22 20:10:47 +00:00
committed by Automerger Merge Worker

View File

@@ -185,16 +185,26 @@ public class BubbleBarController extends IBubblesListener.Stub {
mBubbleBarViewController.setHiddenForBubbles(!BUBBLE_BAR_ENABLED);
mBubbleStashedHandleViewController.setHiddenForBubbles(!BUBBLE_BAR_ENABLED);
});
}
BUBBLE_STATE_EXECUTOR.execute(() -> {
if (mOverflowBubble == null) {
BubbleBarOverflow overflow = createOverflow(mContext);
mMainExecutor.execute(() -> {
/**
* Creates and adds the overflow bubble to the bubble bar if it hasn't been created yet.
*
* <p>This should be called on the {@link #BUBBLE_STATE_EXECUTOR} executor to avoid inflating
* the overflow multiple times.
*/
private void createAndAddOverflowIfNeeded() {
if (mOverflowBubble == null) {
BubbleBarOverflow overflow = createOverflow(mContext);
mMainExecutor.execute(() -> {
// we're on the main executor now, so check that the overflow hasn't been created
// again to avoid races.
if (mOverflowBubble == null) {
mBubbleBarViewController.addBubble(overflow);
mOverflowBubble = overflow;
});
}
});
}
});
}
}
/**
@@ -226,6 +236,7 @@ public class BubbleBarController extends IBubblesListener.Stub {
|| !update.currentBubbleList.isEmpty()) {
// We have bubbles to load
BUBBLE_STATE_EXECUTOR.execute(() -> {
createAndAddOverflowIfNeeded();
if (update.addedBubble != null) {
viewUpdate.addedBubble = populateBubble(update.addedBubble, mContext, mBarView);
}