Loading core/java/com/android/internal/view/menu/ActionMenuView.java +12 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.LinearLayout; import java.lang.ref.WeakReference; import java.util.ArrayList; /** Loading @@ -39,6 +40,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo private int mMaxItems; private boolean mReserveOverflow; private OverflowMenuButton mOverflowButton; private WeakReference<MenuPopupHelper> mOverflowPopup; public ActionMenuView(Context context) { this(context, null); Loading Loading @@ -145,6 +147,16 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo if (mOverflowButton != null) { MenuPopupHelper popup = new MenuPopupHelper(getContext(), mMenu, mOverflowButton, true); popup.show(); mOverflowPopup = new WeakReference<MenuPopupHelper>(popup); return true; } return false; } public boolean hideOverflowMenu() { MenuPopupHelper popup = mOverflowPopup != null ? mOverflowPopup.get() : null; if (popup != null) { popup.dismiss(); return true; } return false; Loading core/java/com/android/internal/widget/ActionBarView.java +7 −0 Original line number Diff line number Diff line Loading @@ -209,6 +209,13 @@ public class ActionBarView extends ViewGroup { return false; } public boolean hideOverflowMenu() { if (mMenuView != null) { return mMenuView.hideOverflowMenu(); } return false; } public boolean isOverflowReserved() { return mMenuView != null && mMenuView.isOverflowReserved(); } Loading policy/src/com/android/internal/policy/impl/PhoneWindow.java +10 −2 Original line number Diff line number Diff line Loading @@ -406,8 +406,13 @@ 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.showOverflowMenu(); } else { openPanel(getPanelState(featureId, true), event); } } private void openPanel(PanelFeatureState st, KeyEvent event) { // System.out.println("Open panel: isOpen=" + st.isOpen); Loading Loading @@ -497,7 +502,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public final void closePanel(int featureId) { if (featureId == FEATURE_CONTEXT_MENU) { if (featureId == FEATURE_OPTIONS_PANEL && mActionBar != null && mActionBar.isOverflowReserved()) { mActionBar.hideOverflowMenu(); } else if (featureId == FEATURE_CONTEXT_MENU) { closeContextMenu(); } else { closePanel(getPanelState(featureId, true), true); Loading Loading
core/java/com/android/internal/view/menu/ActionMenuView.java +12 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.LinearLayout; import java.lang.ref.WeakReference; import java.util.ArrayList; /** Loading @@ -39,6 +40,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo private int mMaxItems; private boolean mReserveOverflow; private OverflowMenuButton mOverflowButton; private WeakReference<MenuPopupHelper> mOverflowPopup; public ActionMenuView(Context context) { this(context, null); Loading Loading @@ -145,6 +147,16 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo if (mOverflowButton != null) { MenuPopupHelper popup = new MenuPopupHelper(getContext(), mMenu, mOverflowButton, true); popup.show(); mOverflowPopup = new WeakReference<MenuPopupHelper>(popup); return true; } return false; } public boolean hideOverflowMenu() { MenuPopupHelper popup = mOverflowPopup != null ? mOverflowPopup.get() : null; if (popup != null) { popup.dismiss(); return true; } return false; Loading
core/java/com/android/internal/widget/ActionBarView.java +7 −0 Original line number Diff line number Diff line Loading @@ -209,6 +209,13 @@ public class ActionBarView extends ViewGroup { return false; } public boolean hideOverflowMenu() { if (mMenuView != null) { return mMenuView.hideOverflowMenu(); } return false; } public boolean isOverflowReserved() { return mMenuView != null && mMenuView.isOverflowReserved(); } Loading
policy/src/com/android/internal/policy/impl/PhoneWindow.java +10 −2 Original line number Diff line number Diff line Loading @@ -406,8 +406,13 @@ 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.showOverflowMenu(); } else { openPanel(getPanelState(featureId, true), event); } } private void openPanel(PanelFeatureState st, KeyEvent event) { // System.out.println("Open panel: isOpen=" + st.isOpen); Loading Loading @@ -497,7 +502,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override public final void closePanel(int featureId) { if (featureId == FEATURE_CONTEXT_MENU) { if (featureId == FEATURE_OPTIONS_PANEL && mActionBar != null && mActionBar.isOverflowReserved()) { mActionBar.hideOverflowMenu(); } else if (featureId == FEATURE_CONTEXT_MENU) { closeContextMenu(); } else { closePanel(getPanelState(featureId, true), true); Loading