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

Commit a9a3e923 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 am: f934931d

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

Change-Id: Iedd6c0e50743b4b5991607728cd5ed5601502c5b
parents 82963cca f934931d
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);
    }