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
This commit is contained in:
jorgegil@google.com
2021-02-12 14:22:56 -08:00
parent edad8e7fe0
commit a997c886e3
3 changed files with 4 additions and 13 deletions

View File

@@ -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.
*/

View File

@@ -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();
}

View File

@@ -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,