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

Commit a2906cb4 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Show alternate menu panel on devices with menu key" into klp-dev

parents c0f65209 5fcf5b9f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -375,6 +375,10 @@ public class ActionMenuPresenter extends BaseMenuPresenter
        return mOverflowPopup != null && mOverflowPopup.isShowing();
    }

    public boolean isOverflowMenuShowPending() {
        return mPostedOpenRunnable != null || isOverflowMenuShowing();
    }

    /**
     * @return true if space has been reserved in the action menu for an overflow item.
     */
+7 −0
Original line number Diff line number Diff line
@@ -201,6 +201,13 @@ public abstract class AbsActionBarView extends ViewGroup {
        return false;
    }

    public boolean isOverflowMenuShowPending() {
        if (mActionMenuPresenter != null) {
            return mActionMenuPresenter.isOverflowMenuShowPending();
        }
        return false;
    }

    public boolean isOverflowReserved() {
        return mActionMenuPresenter != null && mActionMenuPresenter.isOverflowReserved();
    }
+11 −5
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.view.WindowManager.LayoutParams.*;

import android.view.ViewConfiguration;
import com.android.internal.view.RootViewSurfaceTaker;
import com.android.internal.view.StandaloneActionMode;
import com.android.internal.view.menu.ContextMenuBuilder;
@@ -540,7 +541,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
    @Override
    public final void openPanel(int featureId, KeyEvent event) {
        if (featureId == FEATURE_OPTIONS_PANEL && mActionBar != null &&
                mActionBar.isOverflowReserved()) {
                mActionBar.isOverflowReserved() &&
                !ViewConfiguration.get(getContext()).hasPermanentMenuKey()) {
            if (mActionBar.getVisibility() == View.VISIBLE) {
                mActionBar.showOverflowMenu();
            }
@@ -549,7 +551,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
        }
    }

    private void openPanel(PanelFeatureState st, KeyEvent event) {
    private void openPanel(final PanelFeatureState st, KeyEvent event) {
        // System.out.println("Open panel: isOpen=" + st.isOpen);

        // Already open, return
@@ -673,7 +675,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
    @Override
    public final void closePanel(int featureId) {
        if (featureId == FEATURE_OPTIONS_PANEL && mActionBar != null &&
                mActionBar.isOverflowReserved()) {
                mActionBar.isOverflowReserved() &&
                !ViewConfiguration.get(getContext()).hasPermanentMenuKey()) {
            mActionBar.hideOverflowMenu();
        } else if (featureId == FEATURE_CONTEXT_MENU) {
            closeContextMenu();
@@ -836,7 +839,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
            boolean playSoundEffect = false;
            final PanelFeatureState st = getPanelState(featureId, true);
            if (featureId == FEATURE_OPTIONS_PANEL && mActionBar != null &&
                    mActionBar.isOverflowReserved()) {
                    mActionBar.isOverflowReserved() &&
                    !ViewConfiguration.get(getContext()).hasPermanentMenuKey()) {
                if (mActionBar.getVisibility() == View.VISIBLE) {
                    if (!mActionBar.isOverflowMenuShowing()) {
                        if (!isDestroyed() && preparePanel(st, event)) {
@@ -1014,7 +1018,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
    }

    private void reopenMenu(boolean toggleMenuMode) {
        if (mActionBar != null && mActionBar.isOverflowReserved()) {
        if (mActionBar != null && mActionBar.isOverflowReserved() &&
                (!ViewConfiguration.get(getContext()).hasPermanentMenuKey() ||
                        mActionBar.isOverflowMenuShowPending())) {
            final Callback cb = getCallback();
            if (!mActionBar.isOverflowMenuShowing() || !toggleMenuMode) {
                if (cb != null && !isDestroyed() && mActionBar.getVisibility() == View.VISIBLE) {