summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Hibdon <mhibdon@google.com>2014-02-25 14:31:12 -0800
committerMartin Hibdon <mhibdon@google.com>2014-02-25 16:40:59 -0800
commitf420943a59db2fe6f0fb66a9055303753d24914f (patch)
tree91463269f689f045ad1c4d4350517db167463bcf
parenta97dda6f9bd716c862311cc84ab174835ba97660 (diff)
downloadandroid_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.xml4
-rw-r--r--src/com/android/mail/ui/MailActionBarView.java14
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);
+ }
}
/**