Loading packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java +50 −29 Original line number Diff line number Diff line Loading @@ -1554,6 +1554,14 @@ public class BubbleStackView extends FrameLayout mBubbleData.setShowingOverflow(true); } if (mIsExpanded && mIsExpansionAnimating) { // If the bubble selection changed during the expansion animation, the expanding bubble // probably crashed or immediately removed itself (or, we just got unlucky with a new // auto-expanding bubble showing up at just the right time). Cancel the animations so we // can start fresh. cancelAllExpandCollapseSwitchAnimations(); } // If we're expanded, screenshot the currently expanded bubble (before expanding the newly // selected bubble) so we can animate it out. if (mIsExpanded && mExpandedBubble != null && mExpandedBubble.getExpandedView() != null) { Loading Loading @@ -1879,7 +1887,8 @@ public class BubbleStackView extends FrameLayout mExpandedBubble.getExpandedView().setSurfaceZOrderedOnTop(false); } mDelayedAnimationHandler.postDelayed(() -> mDelayedAnimationHandler.postDelayed(() -> { PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel(); PhysicsAnimator.getInstance(mExpandedViewContainerMatrix) .spring(AnimatableScaleMatrix.SCALE_X, AnimatableScaleMatrix.getAnimatableValueForScaleFactor(1f), Loading Loading @@ -1907,7 +1916,8 @@ public class BubbleStackView extends FrameLayout .setSurfaceZOrderedOnTop(false); } }) .start(), startDelay); .start(); }, startDelay); } private void animateCollapse() { Loading Loading @@ -2035,6 +2045,7 @@ public class BubbleStackView extends FrameLayout return; } PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel(); PhysicsAnimator.getInstance(mExpandedViewContainerMatrix) .spring(AnimatableScaleMatrix.SCALE_X, AnimatableScaleMatrix.getAnimatableValueForScaleFactor(1f), Loading Loading @@ -2068,6 +2079,15 @@ public class BubbleStackView extends FrameLayout mIsBubbleSwitchAnimating = false; } private void cancelAllExpandCollapseSwitchAnimations() { cancelDelayedExpandCollapseSwitchAnimations(); PhysicsAnimator.getInstance(mAnimatingOutSurfaceView).cancel(); PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel(); mExpandedViewContainer.setAnimationMatrix(null); } private void notifyExpansionChanged(BubbleViewProvider bubble, boolean expanded) { if (mExpandListener != null && bubble != null) { mExpandListener.onBubbleExpandChanged(expanded, bubble.getKey()); Loading Loading @@ -2587,6 +2607,7 @@ public class BubbleStackView extends FrameLayout bev.setContentVisibility(false); mExpandedViewContainerMatrix.setScaleX(0f); mExpandedViewContainerMatrix.setScaleY(0f); mExpandedViewContainerMatrix.setTranslate(0f, 0f); mExpandedViewContainer.setVisibility(View.INVISIBLE); mExpandedViewContainer.setAlpha(0f); mExpandedViewContainer.addView(bev); Loading packages/SystemUI/src/com/android/systemui/bubbles/animation/ExpandedAnimationController.java +4 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,10 @@ public class ExpandedAnimationController } mAfterExpand = null; // Update bubble positions in case any bubbles were added or removed during the // expansion animation. updateBubblePositions(); }; } else { after = () -> { Loading Loading
packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java +50 −29 Original line number Diff line number Diff line Loading @@ -1554,6 +1554,14 @@ public class BubbleStackView extends FrameLayout mBubbleData.setShowingOverflow(true); } if (mIsExpanded && mIsExpansionAnimating) { // If the bubble selection changed during the expansion animation, the expanding bubble // probably crashed or immediately removed itself (or, we just got unlucky with a new // auto-expanding bubble showing up at just the right time). Cancel the animations so we // can start fresh. cancelAllExpandCollapseSwitchAnimations(); } // If we're expanded, screenshot the currently expanded bubble (before expanding the newly // selected bubble) so we can animate it out. if (mIsExpanded && mExpandedBubble != null && mExpandedBubble.getExpandedView() != null) { Loading Loading @@ -1879,7 +1887,8 @@ public class BubbleStackView extends FrameLayout mExpandedBubble.getExpandedView().setSurfaceZOrderedOnTop(false); } mDelayedAnimationHandler.postDelayed(() -> mDelayedAnimationHandler.postDelayed(() -> { PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel(); PhysicsAnimator.getInstance(mExpandedViewContainerMatrix) .spring(AnimatableScaleMatrix.SCALE_X, AnimatableScaleMatrix.getAnimatableValueForScaleFactor(1f), Loading Loading @@ -1907,7 +1916,8 @@ public class BubbleStackView extends FrameLayout .setSurfaceZOrderedOnTop(false); } }) .start(), startDelay); .start(); }, startDelay); } private void animateCollapse() { Loading Loading @@ -2035,6 +2045,7 @@ public class BubbleStackView extends FrameLayout return; } PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel(); PhysicsAnimator.getInstance(mExpandedViewContainerMatrix) .spring(AnimatableScaleMatrix.SCALE_X, AnimatableScaleMatrix.getAnimatableValueForScaleFactor(1f), Loading Loading @@ -2068,6 +2079,15 @@ public class BubbleStackView extends FrameLayout mIsBubbleSwitchAnimating = false; } private void cancelAllExpandCollapseSwitchAnimations() { cancelDelayedExpandCollapseSwitchAnimations(); PhysicsAnimator.getInstance(mAnimatingOutSurfaceView).cancel(); PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel(); mExpandedViewContainer.setAnimationMatrix(null); } private void notifyExpansionChanged(BubbleViewProvider bubble, boolean expanded) { if (mExpandListener != null && bubble != null) { mExpandListener.onBubbleExpandChanged(expanded, bubble.getKey()); Loading Loading @@ -2587,6 +2607,7 @@ public class BubbleStackView extends FrameLayout bev.setContentVisibility(false); mExpandedViewContainerMatrix.setScaleX(0f); mExpandedViewContainerMatrix.setScaleY(0f); mExpandedViewContainerMatrix.setTranslate(0f, 0f); mExpandedViewContainer.setVisibility(View.INVISIBLE); mExpandedViewContainer.setAlpha(0f); mExpandedViewContainer.addView(bev); Loading
packages/SystemUI/src/com/android/systemui/bubbles/animation/ExpandedAnimationController.java +4 −0 Original line number Diff line number Diff line Loading @@ -237,6 +237,10 @@ public class ExpandedAnimationController } mAfterExpand = null; // Update bubble positions in case any bubbles were added or removed during the // expansion animation. updateBubblePositions(); }; } else { after = () -> { Loading