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;
@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();
}
}
}
- 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
@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();
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)) {
}
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) {