summaryrefslogtreecommitdiffstats
path: root/core/java/com/android/internal/widget/FloatingToolbar.java
diff options
context:
space:
mode:
authorAbodunrinwa Toki <toki@google.com>2015-06-01 14:37:24 +0100
committerAbodunrinwa Toki <toki@google.com>2015-06-01 23:03:34 +0100
commit5047132887112df4235beea8ff42a28f1653e202 (patch)
treea4aa3d0af6a59c39fe80975e267fa590174ef3ca /core/java/com/android/internal/widget/FloatingToolbar.java
parentab06923576d4a49bc84c94badfcebcb7f6b103a8 (diff)
downloadframeworks_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.java18
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;
}