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

Commit 2ac3b061 authored by Tony Huang's avatar Tony Huang Committed by Automerger Merge Worker
Browse files

Merge "Set allowTouches after the fling animation end" into rvc-dev am: a08db2de

Change-Id: I0e38383421a1f9627618ab73efa0a1b381298788
parents e477092c a08db2de
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -815,6 +815,7 @@ public class PipTouchHandler {
    private class DefaultPipTouchGesture extends PipTouchGesture {
        private final Point mStartPosition = new Point();
        private final PointF mDelta = new PointF();
        private boolean mShouldHideMenuAfterFling;

        @Override
        public void onDown(PipTouchState touchState) {
@@ -892,21 +893,17 @@ public class PipTouchHandler {
            final float velocity = PointF.length(vel.x, vel.y);

            if (touchState.isDragging()) {
                Runnable endAction = null;
                if (mMenuState != MENU_STATE_NONE) {
                    // If the menu is still visible, then just poke the menu so that
                    // it will timeout after the user stops touching it
                    mMenuController.showMenu(mMenuState, mMotionHelper.getBounds(),
                            true /* allowMenuTimeout */, willResizeMenu());
                } else {
                    // If the menu is not visible, then we can still be showing the activity for the
                    // dismiss overlay, so just finish it after the animation completes
                    endAction = mMenuController::hideMenu;
                }
                mShouldHideMenuAfterFling = mMenuState == MENU_STATE_NONE;

                mMotionHelper.flingToSnapTarget(vel.x, vel.y,
                        PipTouchHandler.this::updateDismissFraction /* updateAction */,
                        endAction /* endAction */);
                        this::flingEndAction /* endAction */);
            } else if (mTouchState.isDoubleTap()) {
                // Expand to fullscreen if this is a double tap
                // the PiP should be frozen until the transition ends
@@ -927,6 +924,15 @@ public class PipTouchHandler {
            }
            return true;
        }

        private void flingEndAction() {
            mTouchState.setAllowTouches(true);
            if (mShouldHideMenuAfterFling) {
                // If the menu is not visible, then we can still be showing the activity for the
                // dismiss overlay, so just finish it after the animation completes
                mMenuController.hideMenu();
            }
        }
    };

    /**