am 79aa7dbb: am 4c2f6e5d: am eb04bfdb: am 467cde34: Merge "Disable unused menu items" into ub-gmail-ur14-dev

* commit '79aa7dbb7f00a3ba33727b3bf795028df0a981a7':
  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;
         }