Fix a couple interactions between action bar and options menus
Fix bug 3129937 - Activity.openOptionsMenu not calling onPrepareOptionsMenu
Fix bug 3070720 - actionbar android.R.id.home isn't dispatched to fragments
Change-Id: I4a154941595583cdec7d1dffbeac9c8340781fa0
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index 0a4f543..e18f58f 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -40,6 +40,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
+import android.view.Window;
import android.widget.AdapterView;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
@@ -219,7 +220,7 @@
Context context = getContext();
if (context instanceof Activity) {
Activity activity = (Activity) context;
- activity.onOptionsItemSelected(mLogoNavItem);
+ activity.onMenuItemSelected(Window.FEATURE_OPTIONS_PANEL, mLogoNavItem);
}
}
});
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index e99b74f..3dd6510 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -411,6 +411,8 @@
public final void openPanel(int featureId, KeyEvent event) {
if (featureId == FEATURE_OPTIONS_PANEL && mActionBar != null &&
mActionBar.isOverflowReserved()) {
+ // Invalidate the options menu, we want a prepare event that the app can respond to.
+ invalidatePanelMenu(FEATURE_OPTIONS_PANEL);
mActionBar.showOverflowMenu();
} else {
openPanel(getPanelState(featureId, true), event);