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

Commit 20f3be0f 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:...

Merge "Set correct bounds when offset and expanded" into rvc-dev am: 44cb762e am: 6d8f265a am: 750b8591

Change-Id: Ia96695b036c5b7b2469d8c598727ab22e04f8d1d
parents 7af08484 750b8591
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);