diff options
author | Abodunrinwa Toki <toki@google.com> | 2015-06-01 14:37:24 +0100 |
---|---|---|
committer | Abodunrinwa Toki <toki@google.com> | 2015-06-01 23:03:34 +0100 |
commit | 5047132887112df4235beea8ff42a28f1653e202 (patch) | |
tree | a4aa3d0af6a59c39fe80975e267fa590174ef3ca /core/java/com/android/internal/widget/FloatingToolbar.java | |
parent | ab06923576d4a49bc84c94badfcebcb7f6b103a8 (diff) | |
download | frameworks_base-5047132887112df4235beea8ff42a28f1653e202.zip frameworks_base-5047132887112df4235beea8ff42a28f1653e202.tar.gz frameworks_base-5047132887112df4235beea8ff42a28f1653e202.tar.bz2 |
Also refresh FloatingToolbar for "icon" menu item changes.
Bug: 21512730
Change-Id: I77f62c46e2d2a11e6cb4329fa8b659bb1a97a6b9
Diffstat (limited to 'core/java/com/android/internal/widget/FloatingToolbar.java')
-rw-r--r-- | core/java/com/android/internal/widget/FloatingToolbar.java | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/core/java/com/android/internal/widget/FloatingToolbar.java b/core/java/com/android/internal/widget/FloatingToolbar.java index 3cff59a..b23b47a 100644 --- a/core/java/com/android/internal/widget/FloatingToolbar.java +++ b/core/java/com/android/internal/widget/FloatingToolbar.java @@ -83,7 +83,7 @@ public final class FloatingToolbar { private final Rect mContentRect = new Rect(); private Menu mMenu; - private List<CharSequence> mShowingTitles = new ArrayList<CharSequence>(); + private List<Object> mShowingMenuItems = new ArrayList<Object>(); private MenuItem.OnMenuItemClickListener mMenuItemClickListener = NO_OP_MENUITEM_CLICK_LISTENER; private int mSuggestedWidth; @@ -155,7 +155,7 @@ public final class FloatingToolbar { if (!isCurrentlyShowing(menuItems) || mWidthChanged) { mPopup.dismiss(); mPopup.layoutMenuItems(menuItems, mMenuItemClickListener, mSuggestedWidth); - mShowingTitles = getMenuItemTitles(menuItems); + mShowingMenuItems = getShowingMenuItemsReferences(menuItems); } mPopup.updateCoordinates(mContentRect); if (!mPopup.isShowing()) { @@ -210,7 +210,7 @@ public final class FloatingToolbar { * Returns true if this floating toolbar is currently showing the specified menu items. */ private boolean isCurrentlyShowing(List<MenuItem> menuItems) { - return mShowingTitles.equals(getMenuItemTitles(menuItems)); + return mShowingMenuItems.equals(getShowingMenuItemsReferences(menuItems)); } /** @@ -233,12 +233,16 @@ public final class FloatingToolbar { return menuItems; } - private List<CharSequence> getMenuItemTitles(List<MenuItem> menuItems) { - List<CharSequence> titles = new ArrayList<CharSequence>(); + private List<Object> getShowingMenuItemsReferences(List<MenuItem> menuItems) { + List<Object> references = new ArrayList<Object>(); for (MenuItem menuItem : menuItems) { - titles.add(menuItem.getTitle()); + if (isIconOnlyMenuItem(menuItem)) { + references.add(menuItem.getIcon()); + } else { + references.add(menuItem.getTitle()); + } } - return titles; + return references; } |