diff options
Diffstat (limited to 'core/java')
3 files changed, 8 insertions, 4 deletions
diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java index 6471e14..23ed019 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java +++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java @@ -216,6 +216,8 @@ public class ActionMenuPresenter extends BaseMenuPresenter } super.updateMenuView(cleared); + ((View) mMenuView).requestLayout(); + if (mMenu != null) { final ArrayList<MenuItemImpl> actionItems = mMenu.getActionItems(); final int count = actionItems.size(); diff --git a/core/java/com/android/internal/view/menu/ActionMenuView.java b/core/java/com/android/internal/view/menu/ActionMenuView.java index 34ade74..16a2031 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuView.java @@ -15,8 +15,6 @@ */ package com.android.internal.view.menu; -import com.android.internal.R; - import android.content.Context; import android.content.res.Configuration; import android.content.res.TypedArray; @@ -27,6 +25,7 @@ import android.view.ViewDebug; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.widget.LinearLayout; +import com.android.internal.R; /** * @hide @@ -101,7 +100,7 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo // Special formatting can change whether items can fit as action buttons. // Kick the menu and update presenters when this changes. - final int widthSize = MeasureSpec.getMode(widthMeasureSpec); + final int widthSize = MeasureSpec.getSize(widthMeasureSpec); if (mFormatItems && mMenu != null && widthSize != mFormatItemsWidth) { mFormatItemsWidth = widthSize; mMenu.onItemsChanged(true); diff --git a/core/java/com/android/internal/view/menu/MenuBuilder.java b/core/java/com/android/internal/view/menu/MenuBuilder.java index 458ea2f..aff697a 100644 --- a/core/java/com/android/internal/view/menu/MenuBuilder.java +++ b/core/java/com/android/internal/view/menu/MenuBuilder.java @@ -1034,6 +1034,10 @@ public class MenuBuilder implements Menu { * to avoid inadvertent reordering that may break the app's intended design. */ public void flagActionItems() { + // Important side effect: if getVisibleItems is stale it may refresh, + // which can affect action items staleness. + final ArrayList<MenuItemImpl> visibleItems = getVisibleItems(); + if (!mIsActionItemsStale) { return; } @@ -1052,7 +1056,6 @@ public class MenuBuilder implements Menu { if (flagged) { mActionItems.clear(); mNonActionItems.clear(); - ArrayList<MenuItemImpl> visibleItems = getVisibleItems(); final int itemsSize = visibleItems.size(); for (int i = 0; i < itemsSize; i++) { MenuItemImpl item = visibleItems.get(i); |