Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2ecdf72 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix issues with bubbles crashing/removing during expansion."...

Merge "Merge "Fix issues with bubbles crashing/removing during expansion." into rvc-dev am: 7bf84ecb am: 45b21261 am: 97a8edc7" into rvc-qpr-dev-plus-aosp
parents 7b1c7890 a866c638
Loading
Loading
Loading
Loading
+50 −29
Original line number Diff line number Diff line
@@ -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) {
@@ -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),
@@ -1907,7 +1916,8 @@ public class BubbleStackView extends FrameLayout
                                    .setSurfaceZOrderedOnTop(false);
                        }
                    })
                                .start(), startDelay);
                    .start();
        }, startDelay);
    }

    private void animateCollapse() {
@@ -2035,6 +2045,7 @@ public class BubbleStackView extends FrameLayout
                return;
            }

            PhysicsAnimator.getInstance(mExpandedViewContainerMatrix).cancel();
            PhysicsAnimator.getInstance(mExpandedViewContainerMatrix)
                    .spring(AnimatableScaleMatrix.SCALE_X,
                            AnimatableScaleMatrix.getAnimatableValueForScaleFactor(1f),
@@ -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());
@@ -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);
+4 −0
Original line number Diff line number Diff line
@@ -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 = () -> {