am eb04bfdb: am 467cde34: Merge "Disable unused menu items" into ub-gmail-ur14-dev
* commit 'eb04bfdb3d989452b91ff0543cee2630966ca187':
Disable unused menu items
diff --git a/src/com/android/mail/browse/SelectedConversationsActionMenu.java b/src/com/android/mail/browse/SelectedConversationsActionMenu.java
index 5ebf7ce..dabb31e 100644
--- a/src/com/android/mail/browse/SelectedConversationsActionMenu.java
+++ b/src/com/android/mail/browse/SelectedConversationsActionMenu.java
@@ -371,7 +371,7 @@
boolean showMarkNotSpam = false;
boolean showMarkAsPhishing = false;
- // TODO(shahrk): Clean up these dirty calls using Utils.setMenuItemVisibility(...) or
+ // TODO(shahrk): Clean up these dirty calls using Utils.setMenuItemPresent(...) or
// in another way
for (Conversation conversation : conversations) {
diff --git a/src/com/android/mail/ui/AbstractConversationViewFragment.java b/src/com/android/mail/ui/AbstractConversationViewFragment.java
index 471f940..86e54ab 100644
--- a/src/com/android/mail/ui/AbstractConversationViewFragment.java
+++ b/src/com/android/mail/ui/AbstractConversationViewFragment.java
@@ -348,7 +348,7 @@
@Override
public void onPrepareOptionsMenu(Menu menu) {
// Only show option if we support message transforms and message has been transformed.
- Utils.setMenuItemVisibility(menu, R.id.show_original, supportsMessageTransforms() &&
+ Utils.setMenuItemPresent(menu, R.id.show_original, supportsMessageTransforms() &&
mHasConversationBeenTransformed && !mHasConversationTransformBeenReverted);
final MenuItem printMenuItem = menu.findItem(R.id.print_all);
diff --git a/src/com/android/mail/ui/ActionBarController.java b/src/com/android/mail/ui/ActionBarController.java
index 056de30..f842546 100644
--- a/src/com/android/mail/ui/ActionBarController.java
+++ b/src/com/android/mail/ui/ActionBarController.java
@@ -230,20 +230,16 @@
* conditions are properly set to the correct visibility
*/
public void validateVolatileMenuOptionVisibility() {
- if (mEmptyTrashItem != null) {
- mEmptyTrashItem.setVisible(mAccount != null && mFolder != null
- && mAccount.supportsCapability(AccountCapabilities.EMPTY_TRASH)
- && mFolder.isTrash() && mFolder.totalCount > 0
- && (mController.getConversationListCursor() == null
- || mController.getConversationListCursor().getCount() > 0));
- }
- if (mEmptySpamItem != null) {
- mEmptySpamItem.setVisible(mAccount != null && mFolder != null
- && mAccount.supportsCapability(AccountCapabilities.EMPTY_SPAM)
- && mFolder.isType(FolderType.SPAM) && mFolder.totalCount > 0
- && (mController.getConversationListCursor() == null
- || mController.getConversationListCursor().getCount() > 0));
- }
+ Utils.setMenuItemPresent(mEmptyTrashItem, mAccount != null && mFolder != null
+ && mAccount.supportsCapability(AccountCapabilities.EMPTY_TRASH)
+ && mFolder.isTrash() && mFolder.totalCount > 0
+ && (mController.getConversationListCursor() == null
+ || mController.getConversationListCursor().getCount() > 0));
+ Utils.setMenuItemPresent(mEmptySpamItem, mAccount != null && mFolder != null
+ && mAccount.supportsCapability(AccountCapabilities.EMPTY_SPAM)
+ && mFolder.isType(FolderType.SPAM) && mFolder.totalCount > 0
+ && (mController.getConversationListCursor() == null
+ || mController.getConversationListCursor().getCount() > 0));
}
public boolean onPrepareOptionsMenu(Menu menu) {
@@ -276,7 +272,7 @@
case ViewMode.CONVERSATION_LIST:
case ViewMode.SEARCH_RESULTS_LIST:
// The search menu item should only be visible for non-tablet devices
- Utils.setMenuItemVisibility(menu, R.id.search,
+ Utils.setMenuItemPresent(menu, R.id.search,
mAccount.supportsSearch() && !mIsOnTablet);
}
@@ -395,36 +391,36 @@
return;
}
final boolean showMarkImportant = !mCurrentConversation.isImportant();
- Utils.setMenuItemVisibility(menu, R.id.mark_important, showMarkImportant
+ Utils.setMenuItemPresent(menu, R.id.mark_important, showMarkImportant
&& mAccount.supportsCapability(UIProvider.AccountCapabilities.MARK_IMPORTANT));
- Utils.setMenuItemVisibility(menu, R.id.mark_not_important, !showMarkImportant
+ Utils.setMenuItemPresent(menu, R.id.mark_not_important, !showMarkImportant
&& mAccount.supportsCapability(UIProvider.AccountCapabilities.MARK_IMPORTANT));
final boolean isOutbox = mFolder.isType(FolderType.OUTBOX);
final boolean showDiscardOutbox = mFolder != null && isOutbox &&
mCurrentConversation.sendingState == UIProvider.ConversationSendingState.SEND_ERROR;
- Utils.setMenuItemVisibility(menu, R.id.discard_outbox, showDiscardOutbox);
+ Utils.setMenuItemPresent(menu, R.id.discard_outbox, showDiscardOutbox);
final boolean showDelete = !isOutbox && mFolder != null &&
mFolder.supportsCapability(UIProvider.FolderCapabilities.DELETE);
- Utils.setMenuItemVisibility(menu, R.id.delete, showDelete);
+ Utils.setMenuItemPresent(menu, R.id.delete, showDelete);
// We only want to show the discard drafts menu item if we are not showing the delete menu
// item, and the current folder is a draft folder and the account supports discarding
// drafts for a conversation
final boolean showDiscardDrafts = !showDelete && mFolder != null && mFolder.isDraft() &&
mAccount.supportsCapability(AccountCapabilities.DISCARD_CONVERSATION_DRAFTS);
- Utils.setMenuItemVisibility(menu, R.id.discard_drafts, showDiscardDrafts);
+ Utils.setMenuItemPresent(menu, R.id.discard_drafts, showDiscardDrafts);
final boolean archiveVisible = mAccount.supportsCapability(AccountCapabilities.ARCHIVE)
&& mFolder != null && mFolder.supportsCapability(FolderCapabilities.ARCHIVE)
&& !mFolder.isTrash();
- Utils.setMenuItemVisibility(menu, R.id.archive, archiveVisible);
- Utils.setMenuItemVisibility(menu, R.id.remove_folder, !archiveVisible && mFolder != null
+ Utils.setMenuItemPresent(menu, R.id.archive, archiveVisible);
+ Utils.setMenuItemPresent(menu, R.id.remove_folder, !archiveVisible && mFolder != null
&& mFolder.supportsCapability(FolderCapabilities.CAN_ACCEPT_MOVED_MESSAGES)
&& !mFolder.isProviderFolder()
&& mAccount.supportsCapability(AccountCapabilities.ARCHIVE));
- Utils.setMenuItemVisibility(menu, R.id.move_to, mFolder != null
+ Utils.setMenuItemPresent(menu, R.id.move_to, mFolder != null
&& mFolder.supportsCapability(FolderCapabilities.ALLOWS_REMOVE_CONVERSATION));
- Utils.setMenuItemVisibility(menu, R.id.move_to_inbox, mFolder != null
+ Utils.setMenuItemPresent(menu, R.id.move_to_inbox, mFolder != null
&& mFolder.supportsCapability(FolderCapabilities.ALLOWS_MOVE_TO_INBOX));
- Utils.setMenuItemVisibility(menu, R.id.change_folders, mAccount.supportsCapability(
+ Utils.setMenuItemPresent(menu, R.id.change_folders, mAccount.supportsCapability(
UIProvider.AccountCapabilities.MULTIPLE_FOLDERS_PER_CONV));
final MenuItem removeFolder = menu.findItem(R.id.remove_folder);
@@ -432,20 +428,20 @@
removeFolder.setTitle(mActivity.getApplicationContext().getString(
R.string.remove_folder, mFolder.name));
}
- Utils.setMenuItemVisibility(menu, R.id.report_spam,
+ Utils.setMenuItemPresent(menu, R.id.report_spam,
mAccount.supportsCapability(AccountCapabilities.REPORT_SPAM) && mFolder != null
&& mFolder.supportsCapability(FolderCapabilities.REPORT_SPAM)
&& !mCurrentConversation.spam);
- Utils.setMenuItemVisibility(menu, R.id.mark_not_spam,
+ Utils.setMenuItemPresent(menu, R.id.mark_not_spam,
mAccount.supportsCapability(AccountCapabilities.REPORT_SPAM) && mFolder != null
&& mFolder.supportsCapability(FolderCapabilities.MARK_NOT_SPAM)
&& mCurrentConversation.spam);
- Utils.setMenuItemVisibility(menu, R.id.report_phishing,
+ Utils.setMenuItemPresent(menu, R.id.report_phishing,
mAccount.supportsCapability(AccountCapabilities.REPORT_PHISHING) && mFolder != null
&& mFolder.supportsCapability(FolderCapabilities.REPORT_PHISHING)
&& !mCurrentConversation.phishing);
- Utils.setMenuItemVisibility(menu, R.id.mute,
- mAccount.supportsCapability(AccountCapabilities.MUTE) && mFolder != null
+ Utils.setMenuItemPresent(menu, R.id.mute,
+ mAccount.supportsCapability(AccountCapabilities.MUTE) && mFolder != null
&& mFolder.supportsCapability(FolderCapabilities.DESTRUCTIVE_MUTE)
&& !mCurrentConversation.muted);
}
diff --git a/src/com/android/mail/utils/Utils.java b/src/com/android/mail/utils/Utils.java
index 47d9aac..9df03ff 100644
--- a/src/com/android/mail/utils/Utils.java
+++ b/src/com/android/mail/utils/Utils.java
@@ -36,8 +36,6 @@
import android.os.Bundle;
import android.provider.Browser;
import android.support.annotation.Nullable;
-import android.support.v4.text.TextUtilsCompat;
-import android.support.v4.view.ViewCompat;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
@@ -783,8 +781,19 @@
return 0x00ffffff & color;
}
- public static void setMenuItemVisibility(Menu menu, int itemId, boolean shouldShow) {
- final MenuItem item = menu.findItem(itemId);
+ /**
+ * Note that this function sets both the visibility and enabled flags for the menu item so that
+ * if shouldShow is false then the menu item is also no longer valid for keyboard shortcuts.
+ */
+ public static void setMenuItemPresent(Menu menu, int itemId, boolean shouldShow) {
+ setMenuItemPresent(menu.findItem(itemId), shouldShow);
+ }
+
+ /**
+ * Note that this function sets both the visibility and enabled flags for the menu item so that
+ * if shouldShow is false then the menu item is also no longer valid for keyboard shortcuts.
+ */
+ public static void setMenuItemPresent(MenuItem item, boolean shouldShow) {
if (item == null) {
return;
}