Remove Print/Print All from conversation view in Email.
b/12245916 A secondary change in this defect is to dynamically show either Print or Print All in
GMail conversation menus depending on whether the conversation includes 1 or many messages.
Change-Id: If78dced66893c0ae619850f2272c007747e98e26
diff --git a/src/com/android/mail/ui/AbstractConversationViewFragment.java b/src/com/android/mail/ui/AbstractConversationViewFragment.java
index d70305b..51d071c 100644
--- a/src/com/android/mail/ui/AbstractConversationViewFragment.java
+++ b/src/com/android/mail/ui/AbstractConversationViewFragment.java
@@ -58,7 +58,6 @@
import java.util.HashMap;
import java.util.Map;
-
public abstract class AbstractConversationViewFragment extends Fragment implements
ConversationController, ConversationAccountController,
ConversationViewHeaderCallbacks {
@@ -352,7 +351,19 @@
// Only show option if we support message transforms and message has been transformed.
Utils.setMenuItemVisibility(menu, R.id.show_original, supportsMessageTransforms() &&
mHasConversationBeenTransformed && !mHasConversationTransformBeenReverted);
- Utils.setMenuItemVisibility(menu, R.id.print_all, Utils.isRunningKitkatOrLater());
+
+ final MenuItem printMenuItem = menu.findItem(R.id.print_all);
+ if (printMenuItem != null) {
+ // compute the visibility of the print menu item
+ printMenuItem.setVisible(Utils.isRunningKitkatOrLater() && shouldShowPrintInOverflow());
+
+ // compute the text displayed on the print menu item
+ if (mConversation.getNumMessages() == 1) {
+ printMenuItem.setTitle(R.string.print);
+ } else {
+ printMenuItem.setTitle(R.string.print_all);
+ }
+ }
}
abstract boolean supportsMessageTransforms();
@@ -687,6 +698,17 @@
!mHasConversationTransformBeenReverted;
}
+ /**
+ * The Print item in the overflow menu of the Conversation view is shown based on the return
+ * from this method.
+ *
+ * @return {@code true} if the conversation can be printed; {@code false} otherwise.
+ */
+ protected abstract boolean shouldShowPrintInOverflow();
+
+ /**
+ * Prints all messages in the conversation.
+ */
protected abstract void printConversation();
public boolean shouldAlwaysShowImages() {