diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java index 58f79f3600def..62c6a814c028f 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java @@ -899,7 +899,7 @@ public class BubbleStackView extends FrameLayout mStackAnimationController.updateResources(); mBubbleOverflow.updateResources(); - if (mRelativeStackPositionBeforeRotation != null) { + if (!isStackEduShowing() && mRelativeStackPositionBeforeRotation != null) { mStackAnimationController.setStackPosition( mRelativeStackPositionBeforeRotation); mRelativeStackPositionBeforeRotation = null; @@ -1193,6 +1193,8 @@ public class BubbleStackView extends FrameLayout addView(mStackEduView); } mBubbleContainer.bringToFront(); + // Ensure the stack is in the correct spot + mStackAnimationController.setStackPosition(mPositioner.getDefaultStartPosition()); return mStackEduView.show(mPositioner.getDefaultStartPosition()); } @@ -1207,6 +1209,8 @@ public class BubbleStackView extends FrameLayout mStackEduView = new StackEducationView(mContext, mPositioner, mBubbleController); addView(mStackEduView); mBubbleContainer.bringToFront(); // Stack appears on top of the stack education + // Ensure the stack is in the correct spot + mStackAnimationController.setStackPosition(mPositioner.getDefaultStartPosition()); mStackEduView.show(mPositioner.getDefaultStartPosition()); } if (mManageEduView != null && mManageEduView.getVisibility() == VISIBLE) { @@ -1324,10 +1328,12 @@ public class BubbleStackView extends FrameLayout mStackAnimationController.updateResources(); mDismissView.updateResources(); mMagneticTarget.setMagneticFieldRadiusPx(mBubbleSize * 2); - mStackAnimationController.setStackPosition( - new RelativeStackPosition( - mPositioner.getRestingPosition(), - mStackAnimationController.getAllowableStackPositionRegion())); + if (!isStackEduShowing()) { + mStackAnimationController.setStackPosition( + new RelativeStackPosition( + mPositioner.getRestingPosition(), + mStackAnimationController.getAllowableStackPositionRegion())); + } if (mIsExpanded) { updateExpandedView(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/StackEducationView.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/StackEducationView.kt index 824b5f82d6430..1ff4be887fb28 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/StackEducationView.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/StackEducationView.kt @@ -122,7 +122,7 @@ class StackEducationView constructor( * If necessary, shows the user education view for the bubble stack. This appears the first * time a user taps on a bubble. * - * @return true if user education was shown, false otherwise. + * @return true if user education was shown and wasn't showing before, false otherwise. */ fun show(stackPosition: PointF): Boolean { isHiding = false