Make Actionbar aware of capabilities
Change-Id: I15dd2ea169930d9a820df2ef4f314ccb5bac3770
diff --git a/res/menu/conversation_actions.xml b/res/menu/conversation_actions.xml
index 6dd6452..3f392b4 100644
--- a/res/menu/conversation_actions.xml
+++ b/res/menu/conversation_actions.xml
@@ -18,60 +18,69 @@
<!-- Action bar items for the tablet when viewing a conversation -->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- Depends on AccountCapabilities.ARCHIVE -->
<item
android:id="@+id/y_button"
android:title="@string/archive"
android:showAsAction="ifRoom"
android:icon="@drawable/archive"
android:alphabeticShortcut="@string/trigger_y_char" />
-
+ <!-- Always available -->
<item
android:id="@+id/delete"
android:title="@string/delete"
android:showAsAction="ifRoom"
android:icon="@drawable/trash" />
+ <!-- Always available -->
<item
android:id="@+id/change_labels"
android:title="@string/menu_change_labels"
android:showAsAction="ifRoom"
android:icon="@drawable/ic_menu_labels_holo_light" />
+ <!-- Always available -->
<item
android:id="@+id/inside_conversation_unread"
android:title="@string/mark_unread"
android:showAsAction="ifRoom"
android:icon="@drawable/ic_menu_mark_unread_holo_light" />
+ <!-- Always available -->
<item
android:id="@+id/mark_important"
android:title="@string/mark_important"
android:icon="@drawable/ic_email_caret_double" />
+ <!-- Always available -->
<item
android:id="@+id/mark_not_important"
android:title="@string/mark_not_important"
android:icon="@drawable/ic_email_caret_single"
android:visible="false" />
+ <!-- Depends on AccountCapabilities.MUTE -->
<item
android:id="@+id/mute"
android:title="@string/mute" />
-
+ <!-- Depends on AccountCapabilities.REPORT_SPAM -->
<item
android:id="@+id/report_spam"
android:title="@string/report_spam"
android:icon="@drawable/ic_spam_normal_holo_light" />
+ <!-- Always available -->
<item android:id="@+id/preferences"
android:title="@string/menu_preferences"
android:icon="@android:drawable/ic_menu_preferences" />
+ <!-- Always available -->
<item
android:id="@+id/help_info_menu_item"
android:icon="@android:drawable/ic_menu_help"
android:title="@string/help_and_info" />
+ <!-- Always available -->
<item
android:id="@+id/feedback_menu_item"
android:icon="@android:drawable/ic_menu_send"
diff --git a/res/menu/folder_list_menu.xml b/res/menu/folder_list_menu.xml
index 1a8c6bd..566b622 100644
--- a/res/menu/folder_list_menu.xml
+++ b/res/menu/folder_list_menu.xml
@@ -17,22 +17,25 @@
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
-
+ <!-- Always available -->
<item android:id="@+id/label_options"
android:title="@string/menu_manage_labels"
android:showAsAction="ifRoom" />
+ <!-- Always available -->
<item android:id="@+id/preferences"
android:title="@string/menu_preferences"
android:showAsAction="never"
android:icon="@android:drawable/ic_menu_preferences" />
+ <!-- Always available -->
<item
android:id="@+id/help_info_menu_item"
android:icon="@android:drawable/ic_menu_help"
android:showAsAction="never"
android:title="@string/help_and_info" />
+ <!-- Always available -->
<item
android:id="@+id/feedback_menu_item"
android:icon="@android:drawable/ic_menu_send"
diff --git a/src/com/android/mail/ui/MailActionBar.java b/src/com/android/mail/ui/MailActionBar.java
index 00a7575..9d76a07 100644
--- a/src/com/android/mail/ui/MailActionBar.java
+++ b/src/com/android/mail/ui/MailActionBar.java
@@ -114,9 +114,9 @@
SpinnerAdapter mSpinner;
private AccountRecentLabelSpinner mSpinnerView;
/**
- * We need to know what each account is capable of, so we can tailor the menu accordingly.
+ * The account currently being shown
*/
- private int mAccountCapabilities;
+ private Account mAccount;
// TODO(viki): This is a SnippetTextView in the Gmail source code. Resolve.
private TextView mSubjectView;
@@ -199,8 +199,7 @@
// Get the capabilities associated with this account.
final Object item = mSpinner.getItem(position);
assert (item instanceof Account);
- mAccountCapabilities = ((Account) item).capabilities;
- Log.d("viki", "Account capabilities are " + mAccountCapabilities);
+ mAccount = (Account) item;
break;
}
return false;
@@ -266,11 +265,15 @@
case ViewMode.CONVERSATION_LIST:
// Show compose, search, labels, and sync based on the account
// The only option that needs to be disabled is search
- setVisibility (R.id.search,
- (mAccountCapabilities & AccountCapabilities.FOLDER_SERVER_SEARCH) != 0);
+ setVisibility(R.id.search, mAccount.supportsCapability(
+ AccountCapabilities.FOLDER_SERVER_SEARCH));
break;
case ViewMode.CONVERSATION:
- // Do nothing?
+ setVisibility(R.id.y_button, mAccount.supportsCapability(
+ AccountCapabilities.ARCHIVE));
+ setVisibility(R.id.report_spam, mAccount.supportsCapability(
+ AccountCapabilities.REPORT_SPAM));
+ setVisibility(R.id.mute, mAccount.supportsCapability(AccountCapabilities.MUTE));
break;
case ViewMode.SEARCH_RESULTS:
mActionBar.setDisplayHomeAsUpEnabled(true);