diff options
author | Martin Hibdon <mhibdon@google.com> | 2014-02-25 14:31:12 -0800 |
---|---|---|
committer | Martin Hibdon <mhibdon@google.com> | 2014-02-25 16:40:59 -0800 |
commit | f420943a59db2fe6f0fb66a9055303753d24914f (patch) | |
tree | 91463269f689f045ad1c4d4350517db167463bcf | |
parent | a97dda6f9bd716c862311cc84ab174835ba97660 (diff) | |
download | android_packages_apps_UnifiedEmail-f420943a59db2fe6f0fb66a9055303753d24914f.tar.gz android_packages_apps_UnifiedEmail-f420943a59db2fe6f0fb66a9055303753d24914f.tar.bz2 android_packages_apps_UnifiedEmail-f420943a59db2fe6f0fb66a9055303753d24914f.zip |
Better fix for displaying add/remove star in actionBar
Change-Id: I10dc1ab21f1be73b8e8d38c42d668c5c60533dda
-rw-r--r-- | res/menu/conversation_list_selection_actions_menu.xml | 4 | ||||
-rw-r--r-- | src/com/android/mail/ui/MailActionBarView.java | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/res/menu/conversation_list_selection_actions_menu.xml b/res/menu/conversation_list_selection_actions_menu.xml index 9b9fc56e7..9db7223ee 100644 --- a/res/menu/conversation_list_selection_actions_menu.xml +++ b/res/menu/conversation_list_selection_actions_menu.xml @@ -86,12 +86,12 @@ <item android:id="@+id/star" android:title="@string/add_star" android:icon="@drawable/ic_menu_starred_holo_light" - android:showAsAction="ifRoom" /> + android:showAsAction="never" /> <item android:id="@+id/remove_star" android:title="@string/remove_star" android:icon="@drawable/ic_menu_unstarred_holo_light" - android:showAsAction="ifRoom" /> + android:showAsAction="never" /> <item android:id="@+id/mark_important" diff --git a/src/com/android/mail/ui/MailActionBarView.java b/src/com/android/mail/ui/MailActionBarView.java index f0d191dd6..a2cc7d275 100644 --- a/src/com/android/mail/ui/MailActionBarView.java +++ b/src/com/android/mail/ui/MailActionBarView.java @@ -471,7 +471,8 @@ public class MailActionBarView extends LinearLayout implements ViewMode.ModeChan } int actionItems = 0; - + MenuItem lastActionCandidate = null; + int totalVisibleItems = 0; for (int i = 0; i < menu.size(); i++) { final MenuItem menuItem = menu.getItem(i); final int itemId = menuItem.getItemId(); @@ -529,10 +530,21 @@ public class MailActionBarView extends LinearLayout implements ViewMode.ModeChan if (actionItems < maxItems) { menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); actionItems++; + } else { + lastActionCandidate = menuItem; } } + if (menuItem.isVisible()) { + totalVisibleItems++; + } } } + if ((totalVisibleItems - actionItems == 1) && lastActionCandidate != null) { + // We have exactly one item that we haven't promoted to display in the actionBar. + // There's no reason to put it in the overflow, because it will fit in the actionBar + // if we just don't display the overflow. + lastActionCandidate.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } } /** |