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

Commit 26a9580e authored by Tony Huang's avatar Tony Huang Committed by Automerger Merge Worker
Browse files

Merge "Set correct bounds when offset and expanded" into rvc-dev am: 44cb762e am: 9eba405e

Change-Id: I4ab2396c845e340c924bdd32e5fe047d8882a574
parents d65c85fe 9eba405e
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -170,9 +170,9 @@ public class PipAnimationController {
        private final @AnimationType int mAnimationType;
        private final Rect mDestinationBounds = new Rect();

        private T mStartValue;
        protected T mCurrentValue;
        protected T mStartValue;
        private T mEndValue;
        private T mCurrentValue;
        private PipAnimationCallback mPipAnimationCallback;
        private PipSurfaceTransactionHelper.SurfaceControlTransactionFactory
                mSurfaceControlTransactionFactory;
@@ -288,7 +288,6 @@ public class PipAnimationController {
         */
        void updateEndValue(T endValue) {
            mEndValue = endValue;
            mStartValue = mCurrentValue;
        }

        SurfaceControl.Transaction newSurfaceControlTransaction() {
@@ -337,6 +336,12 @@ public class PipAnimationController {
                    tx.show(leash);
                    tx.apply();
                }

                @Override
                void updateEndValue(Float endValue) {
                    super.updateEndValue(endValue);
                    mStartValue = mCurrentValue;
                }
            };
        }

@@ -392,6 +397,14 @@ public class PipAnimationController {
                    getSurfaceTransactionHelper().resetScale(tx, leash, getDestinationBounds())
                            .crop(tx, leash, getDestinationBounds());
                }

                @Override
                void updateEndValue(Rect endValue) {
                    super.updateEndValue(endValue);
                    if (mStartValue != null && mCurrentValue != null) {
                        mStartValue.set(mCurrentValue);
                    }
                }
            };
        }
    }
+9 −1
Original line number Diff line number Diff line
@@ -431,13 +431,21 @@ public class PipTouchHandler {
            } else {
                final float offsetBufferPx = BOTTOM_OFFSET_BUFFER_DP
                        * mContext.getResources().getDisplayMetrics().density;
                final Rect toMovementBounds = mMenuState == MENU_STATE_FULL && willResizeMenu()
                final boolean isExpanded = mMenuState == MENU_STATE_FULL && willResizeMenu();
                final Rect toMovementBounds = isExpanded
                        ? new Rect(expandedMovementBounds)
                        : new Rect(normalMovementBounds);
                final int prevBottom = mMovementBounds.bottom - mMovementBoundsExtraOffsets;
                final int toBottom = toMovementBounds.bottom < toMovementBounds.top
                        ? toMovementBounds.bottom
                        : toMovementBounds.bottom - extraOffset;

                if (isExpanded) {
                    curBounds.set(mExpandedBounds);
                    mSnapAlgorithm.applySnapFraction(curBounds, toMovementBounds,
                            mSavedSnapFraction);
                }

                if ((Math.min(prevBottom, toBottom) - offsetBufferPx) <= curBounds.top
                        && curBounds.top <= (Math.max(prevBottom, toBottom) + offsetBufferPx)) {
                    mMotionHelper.animateToOffset(curBounds, toBottom - curBounds.top);