Unify calls to sysuiProxy#showBubble into one method

This will make it easier to note that a bubble has been "visited"
so that we can hide the update dot (coming in future CL).

Test: manual
Bug: 269670235
Change-Id: Ie2dbbc478198ece65c05927295d3c3031a7be82e
This commit is contained in:
Mady Mellor
2023-07-07 16:19:27 -07:00
parent 57d68b4834
commit 4e0ec1e458
2 changed files with 31 additions and 15 deletions

View File

@@ -118,6 +118,7 @@ public class BubbleBarController extends IBubblesListener.Stub {
private final Executor mMainExecutor;
private final LauncherApps mLauncherApps;
private final BubbleIconFactory mIconFactory;
private final SystemUiProxy mSystemUiProxy;
private BubbleBarItem mSelectedBubble;
private BubbleBarOverflow mOverflowBubble;
@@ -159,8 +160,10 @@ public class BubbleBarController extends IBubblesListener.Stub {
mContext = context;
mBarView = bubbleView; // Need the view for inflating bubble views.
mSystemUiProxy = SystemUiProxy.INSTANCE.get(context);
if (BUBBLE_BAR_ENABLED) {
SystemUiProxy.INSTANCE.get(context).setBubblesListener(this);
mSystemUiProxy.setBubblesListener(this);
}
mMainExecutor = MAIN_EXECUTOR;
mLauncherApps = context.getSystemService(LauncherApps.class);
@@ -173,7 +176,7 @@ public class BubbleBarController extends IBubblesListener.Stub {
}
public void onDestroy() {
SystemUiProxy.INSTANCE.get(mContext).setBubblesListener(null);
mSystemUiProxy.setBubblesListener(null);
}
public void init(TaskbarControllers controllers, BubbleControllers bubbleControllers) {
@@ -354,12 +357,33 @@ public class BubbleBarController extends IBubblesListener.Stub {
}
}
/** Tells WMShell to show the currently selected bubble. */
public void showSelectedBubble() {
if (getSelectedBubbleKey() != null) {
int[] bubbleBarCoords = mBarView.getLocationOnScreen();
if (mSelectedBubble instanceof BubbleBarBubble) {
// TODO (b/269670235): hide the update dot on the view if needed.
}
mSystemUiProxy.showBubble(getSelectedBubbleKey(),
bubbleBarCoords[0], bubbleBarCoords[1]);
} else {
Log.w(TAG, "Trying to show the selected bubble but it's null");
}
}
/** Updates the currently selected bubble for launcher views and tells WMShell to show it. */
public void showAndSelectBubble(BubbleBarItem b) {
if (DEBUG) Log.w(TAG, "showingSelectedBubble: " + b.getKey());
setSelectedBubble(b);
showSelectedBubble();
}
/**
* Sets the bubble that should be selected. This notifies the views, it does not notify
* WMShell that the selection has changed, that should go through
* {@link SystemUiProxy#showBubble}.
* WMShell that the selection has changed, that should go through either
* {@link #showSelectedBubble()} or {@link #showAndSelectBubble(BubbleBarItem)}.
*/
public void setSelectedBubble(BubbleBarItem b) {
private void setSelectedBubble(BubbleBarItem b) {
if (!Objects.equals(b, mSelectedBubble)) {
if (DEBUG) Log.w(TAG, "selectingBubble: " + b.getKey());
mSelectedBubble = b;