Merge "Only resize the menu on hide if it was resized on show" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
46e2f5974c
@@ -18,8 +18,6 @@ package com.android.wm.shell.pip.phone;
|
||||
|
||||
import static android.view.WindowManager.SHELL_ROOT_LAYER_PIP;
|
||||
|
||||
import static com.android.wm.shell.pip.phone.PipMenuView.ANIM_TYPE_HIDE;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.app.RemoteAction;
|
||||
import android.content.Context;
|
||||
@@ -399,7 +397,10 @@ public class PhonePipMenuController implements PipMenuController {
|
||||
* Hides the menu view.
|
||||
*/
|
||||
public void hideMenu() {
|
||||
hideMenu(ANIM_TYPE_HIDE, true /* resize */);
|
||||
final boolean isMenuVisible = isMenuVisible();
|
||||
if (isMenuVisible) {
|
||||
mPipMenuView.hideMenu();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -130,6 +130,11 @@ public class PipMenuView extends FrameLayout {
|
||||
private ShellExecutor mMainExecutor;
|
||||
private Handler mMainHandler;
|
||||
|
||||
/**
|
||||
* Whether the most recent showing of the menu caused a PIP resize, such as when PIP is too
|
||||
* small and it is resized on menu show to fit the actions.
|
||||
*/
|
||||
private boolean mDidLastShowMenuResize;
|
||||
private final Runnable mHideMenuRunnable = this::hideMenu;
|
||||
|
||||
protected View mViewRoot;
|
||||
@@ -245,6 +250,7 @@ public class PipMenuView extends FrameLayout {
|
||||
void showMenu(int menuState, Rect stackBounds, boolean allowMenuTimeout,
|
||||
boolean resizeMenuOnShow, boolean withDelay, boolean showResizeHandle) {
|
||||
mAllowMenuTimeout = allowMenuTimeout;
|
||||
mDidLastShowMenuResize = resizeMenuOnShow;
|
||||
if (mMenuState != menuState) {
|
||||
// Disallow touches if the menu needs to resize while showing, and we are transitioning
|
||||
// to/from a full menu state.
|
||||
@@ -340,7 +346,7 @@ public class PipMenuView extends FrameLayout {
|
||||
}
|
||||
|
||||
void hideMenu(Runnable animationEndCallback) {
|
||||
hideMenu(animationEndCallback, true /* notifyMenuVisibility */, true /* resize */,
|
||||
hideMenu(animationEndCallback, true /* notifyMenuVisibility */, mDidLastShowMenuResize,
|
||||
ANIM_TYPE_HIDE);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user