From b4c8ba49ac6ccce8e5c7904741f4adff05e37640 Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Thu, 11 Jul 2013 16:17:10 -0700 Subject: Fix MenuItemImpl#hasCollapsibleActionView for action providers hasCollapsibleActionView was previously checking only that mActionView was not null, even if the item had a valid ActionProvider that would later lazily create an action view when prompted. Account for this and attempt to create the action view if needed when hasCollapsibleActionView is called. Bug 8732876 Change-Id: Idf7b329770f686208882509b82a4cb13c70ef32c --- core/java/com/android/internal/view/menu/MenuItemImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java index 39078ca2746d..3d6b1166d9ce 100644 --- a/core/java/com/android/internal/view/menu/MenuItemImpl.java +++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java @@ -616,7 +616,7 @@ public final class MenuItemImpl implements MenuItem { @Override public boolean expandActionView() { - if ((mShowAsAction & SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW) == 0 || mActionView == null) { + if (hasCollapsibleActionView()) { return false; } @@ -653,7 +653,13 @@ public final class MenuItemImpl implements MenuItem { } public boolean hasCollapsibleActionView() { - return (mShowAsAction & SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW) != 0 && mActionView != null; + if ((mShowAsAction & SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW) != 0) { + if (mActionView == null && mActionProvider != null) { + mActionView = mActionProvider.onCreateActionView(this); + } + return mActionView != null; + } + return false; } public void setActionViewExpanded(boolean isExpanded) { -- cgit v1.2.3-59-g8ed1b