diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java index 02dda35796..dd1b0ca87e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java @@ -581,15 +581,23 @@ public class BubbleBarViewController { /** Returns maximum height of the bubble bar with the flyout view. */ public int getBubbleBarWithFlyoutMaximumHeight() { - if (!isBubbleBarVisible()) return 0; + if (!isBubbleBarVisible() && !isAnimatingNewBubble()) return 0; int bubbleBarTopOnHome = (int) (mBubbleStashController.getBubbleBarVerticalCenterForHome() - + mBarView.getBubbleBarCollapsedHeight() / 2); - int result = (int) (bubbleBarTopOnHome + mBarView.getArrowHeight()); + + mBarView.getBubbleBarCollapsedHeight() / 2 + mBarView.getArrowHeight()); if (isAnimatingNewBubble()) { - // when animating new bubble add the maximum height of the flyout view - result += mBubbleBarFlyoutController.getMaximumFlyoutHeight(); + if (mTaskbarStashController.isInApp() && mBubbleStashController.getHasHandleView()) { + // when animating a bubble in an app, the bubble bar will be higher than its + // position on home + float bubbleBarTopDistanceFromBottom = + -mBubbleStashController.getBubbleBarTranslationYForTaskbar() + + mBarView.getHeight(); + return (int) bubbleBarTopDistanceFromBottom + + mBubbleBarFlyoutController.getMaximumFlyoutHeight(); + } + return bubbleBarTopOnHome + mBubbleBarFlyoutController.getMaximumFlyoutHeight(); + } else { + return bubbleBarTopOnHome; } - return result; } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/flyout/BubbleBarFlyoutController.kt b/quickstep/src/com/android/launcher3/taskbar/bubbles/flyout/BubbleBarFlyoutController.kt index 63db01200f..7c718e5b56 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/flyout/BubbleBarFlyoutController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/flyout/BubbleBarFlyoutController.kt @@ -63,8 +63,6 @@ constructor( return rect } - fun getFlyoutMaxHeight(): Int = BubbleBarFlyoutView.getMaximumViewHeight(container.context) - fun setUpAndShowFlyout(message: BubbleBarFlyoutMessage, onInit: () -> Unit, onEnd: () -> Unit) { flyout?.let(container::removeView) val flyout = BubbleBarFlyoutView(container.context, positioner, flyoutScheduler)