Merge changes I74b09220,Id7e2db5f into main

* changes:
  Don't animate bubbles in the initial state update
  Suppress animation for bubbles that auto expand
This commit is contained in:
Liran Binyamin
2024-04-08 16:30:30 +00:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 5 deletions
@@ -241,7 +241,8 @@ public class BubbleBarController extends IBubblesListener.Stub {
// 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);
mBubbleBarViewController.addBubble(
overflow, /* isExpanding= */ false, /* suppressAnimation= */ true);
mOverflowBubble = overflow;
}
});
@@ -310,6 +311,10 @@ public class BubbleBarController extends IBubblesListener.Stub {
private void applyViewChanges(BubbleBarViewUpdate update) {
final boolean isCollapsed = (update.expandedChanged && !update.expanded)
|| (!update.expandedChanged && !mBubbleBarViewController.isExpanded());
final boolean isExpanding = update.expandedChanged && update.expanded;
// don't animate bubbles if this is the initial state because we may be unfolding or
// enabling gesture nav
final boolean suppressAnimation = update.initialState;
BubbleBarItem previouslySelectedBubble = mSelectedBubble;
BubbleBarBubble bubbleToSelect = null;
if (!update.removedBubbles.isEmpty()) {
@@ -326,7 +331,7 @@ public class BubbleBarController extends IBubblesListener.Stub {
}
if (update.addedBubble != null) {
mBubbles.put(update.addedBubble.getKey(), update.addedBubble);
mBubbleBarViewController.addBubble(update.addedBubble);
mBubbleBarViewController.addBubble(update.addedBubble, isExpanding, suppressAnimation);
if (isCollapsed) {
// If we're collapsed, the most recently added bubble will be selected.
bubbleToSelect = update.addedBubble;
@@ -339,7 +344,7 @@ public class BubbleBarController extends IBubblesListener.Stub {
BubbleBarBubble bubble = update.currentBubbles.get(i);
if (bubble != null) {
mBubbles.put(bubble.getKey(), bubble);
mBubbleBarViewController.addBubble(bubble);
mBubbleBarViewController.addBubble(bubble, isExpanding, suppressAnimation);
if (isCollapsed) {
// If we're collapsed, the most recently added bubble will be selected.
bubbleToSelect = bubble;
@@ -329,16 +329,21 @@ public class BubbleBarViewController {
/**
* Adds the provided bubble to the bubble bar.
*/
public void addBubble(BubbleBarItem b) {
public void addBubble(BubbleBarItem b, boolean isExpanding, boolean suppressAnimation) {
if (b != null) {
mBarView.addView(b.getView(), 0,
new FrameLayout.LayoutParams(mIconSize, mIconSize, Gravity.LEFT));
b.getView().setOnClickListener(mBubbleClickListener);
mBubbleDragController.setupBubbleView(b.getView());
if (suppressAnimation) {
return;
}
boolean isStashedOrGone =
mBubbleStashController.isStashed() || mBarView.getVisibility() != VISIBLE;
if (b instanceof BubbleBarBubble && isStashedOrGone) {
// don't animate the new bubble if we're auto expanding from stashed
if (b instanceof BubbleBarBubble && isStashedOrGone && !isExpanding) {
mBubbleBarViewAnimator.animateBubbleInForStashed((BubbleBarBubble) b);
}
} else {