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

Commit a997c886 authored by jorgegil@google.com's avatar jorgegil@google.com
Browse files

Hide the Pip menu on drag resize, expand and dismiss

- In drag resize, removes the call to #hideMenuWithoutResize
since that only triggered a menu state change but didn't actually
hide the menu view. The following call to hideMenu would also no-op
because of it. Instead, just call hideMenu with resize=false. This
will actually hide the menu view and then update the state.
- During expand pip, also use hideMenu(animate, resize) to
really hide the menu view - do not animate in this scenario
- During dismiss pip, also use hideMenu(animate, resize) to
really hide the menu view - do animate the menu fade here

Bug: 178391622
Test: Expand, dismiss, drag resize - make sure the menu hides
correctly

Change-Id: Ia84b998e275506f22dd40c977fcd2d87ba63c45a
parent edad8e7f
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -415,15 +415,6 @@ public class PhonePipMenuController implements PipMenuController {
        }
    }

    /**
     * Preemptively mark the menu as invisible, used when we are directly manipulating the pinned
     * stack and don't want to trigger a resize which can animate the stack in a conflicting way
     * (ie. when manually expanding or dismissing).
     */
    public void hideMenuWithoutResize() {
        onMenuStateChanged(MENU_STATE_NONE, false /* resize */, null /* callback */);
    }

    /**
     * Sets the menu actions to the actions provided by the current PiP menu.
     */
+2 −2
Original line number Diff line number Diff line
@@ -325,7 +325,7 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
                    + " callers=\n" + Debug.getCallers(5, "    "));
        }
        cancelPhysicsAnimation();
        mMenuController.hideMenuWithoutResize();
        mMenuController.hideMenu(false /* animate */, false /* resize */);
        mPipTaskOrganizer.exitPip(skipAnimation ? 0 : LEAVE_PIP_DURATION);
    }

@@ -338,7 +338,7 @@ public class PipMotionHelper implements PipAppOpsListener.Callback,
            Log.d(TAG, "removePip: callers=\n" + Debug.getCallers(5, "    "));
        }
        cancelPhysicsAnimation();
        mMenuController.hideMenuWithoutResize();
        mMenuController.hideMenu(true /* animate*/, false /* resize */);
        mPipTaskOrganizer.removePip();
    }

+2 −2
Original line number Diff line number Diff line
@@ -516,8 +516,8 @@ public class PipResizeGestureHandler {
                    }
                    if (mThresholdCrossed) {
                        if (mPhonePipMenuController.isMenuVisible()) {
                            mPhonePipMenuController.hideMenuWithoutResize();
                            mPhonePipMenuController.hideMenu();
                            mPhonePipMenuController.hideMenu(false /* animate */,
                                    false /* resize */);
                        }
                        final Rect currentPipBounds = mPipBoundsState.getBounds();
                        mLastResizeBounds.set(TaskResizingAlgorithm.resizeDrag(x, y,