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

Commit f934931d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Only resize the menu on hide if it was resized on show" into sc-dev am:...

Merge "Only resize the menu on hide if it was resized on show" into sc-dev am: 46e2f597 am: e7de6181

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14649851

Change-Id: I80903dd3ccedfa443692a69a85d3c36af44370c9
parents 659b2392 e7de6181
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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();
        }
    }

    /**
+7 −1
Original line number Diff line number Diff line
@@ -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);
    }