diff options
author | Martin Hibdon <mhibdon@google.com> | 2014-09-30 09:34:11 -0700 |
---|---|---|
committer | Martin Hibdon <mhibdon@google.com> | 2014-09-30 15:53:19 -0700 |
commit | a00a413f293b73b8b6d16c0707d08f881fd92e1c (patch) | |
tree | 34ddf1ed1330ec7a38d6f5ac2d82ffcd53d21028 /src | |
parent | fb2ed0163ce3b366f892dca5128b25d59bab2886 (diff) | |
download | android_packages_apps_UnifiedEmail-a00a413f293b73b8b6d16c0707d08f881fd92e1c.tar.gz android_packages_apps_UnifiedEmail-a00a413f293b73b8b6d16c0707d08f881fd92e1c.tar.bz2 android_packages_apps_UnifiedEmail-a00a413f293b73b8b6d16c0707d08f881fd92e1c.zip |
Don't show ExtraOption1 unless the application overrides optionHandler
b/17040185
AttachmentActionHandler now takes an additional parameter for
the accountType. ExtraOption1 is only enabled if the application
override optionHandler allows it.
Change-Id: I4984e6cb020912cdaf807534a8c4de6ebed07c1c
Diffstat (limited to 'src')
5 files changed, 29 insertions, 20 deletions
diff --git a/src/com/android/mail/browse/AttachmentActionHandler.java b/src/com/android/mail/browse/AttachmentActionHandler.java index 073de9d05..ee569a650 100644 --- a/src/com/android/mail/browse/AttachmentActionHandler.java +++ b/src/com/android/mail/browse/AttachmentActionHandler.java @@ -254,8 +254,9 @@ public class AttachmentActionHandler { sOptionHandler = handler; } - public boolean shouldShowExtraOption1(String mimeType) { - return (sOptionHandler != null) && sOptionHandler.shouldShowExtraOption1(mimeType); + public boolean shouldShowExtraOption1(final String accountType, final String mimeType) { + return (sOptionHandler != null) && sOptionHandler.shouldShowExtraOption1( + accountType, mimeType); } public void handleOption1() { @@ -274,7 +275,7 @@ public class AttachmentActionHandler { */ public static class OptionHandler { - public boolean shouldShowExtraOption1(String mimeType) { + public boolean shouldShowExtraOption1(String accountType, String mimeType) { return false; } diff --git a/src/com/android/mail/browse/MessageAttachmentBar.java b/src/com/android/mail/browse/MessageAttachmentBar.java index 2debc1385..0274d6651 100644 --- a/src/com/android/mail/browse/MessageAttachmentBar.java +++ b/src/com/android/mail/browse/MessageAttachmentBar.java @@ -313,7 +313,8 @@ public class MessageAttachmentBar extends FrameLayout implements OnClickListener private boolean shouldShowExtraOption1() { return !mHideExtraOptionOne && - mActionHandler.shouldShowExtraOption1(mAttachment.getContentType()); + mActionHandler.shouldShowExtraOption1(mAccount.getType(), + mAttachment.getContentType()); } private boolean shouldShowOverflow() { diff --git a/src/com/android/mail/photo/MailPhotoViewActivity.java b/src/com/android/mail/photo/MailPhotoViewActivity.java index 88807d5cb..26c6576b3 100644 --- a/src/com/android/mail/photo/MailPhotoViewActivity.java +++ b/src/com/android/mail/photo/MailPhotoViewActivity.java @@ -34,6 +34,7 @@ public class MailPhotoViewActivity extends PhotoViewActivity implements MailPhotoViewController.ActivityInterface { static final String EXTRA_ACCOUNT = MailPhotoViewActivity.class.getName() + "-acct"; + static final String EXTRA_ACCOUNT_TYPE = MailPhotoViewActivity.class.getName() + "-accttype"; static final String EXTRA_MESSAGE = MailPhotoViewActivity.class.getName() + "-msg"; static final String EXTRA_HIDE_EXTRA_OPTION_ONE = MailPhotoViewActivity.class.getName() + "-hide-extra-option-one"; @@ -41,10 +42,14 @@ public class MailPhotoViewActivity extends PhotoViewActivity implements /** * Start a new MailPhotoViewActivity to view the given images. * - * @param photoIndex The index of the photo to show first. + * @param context The context. + * @param account The email address of the account. + * @param accountType The type of the account. + * @param msg The text of the message for this photo. + * @param photoIndex The index of the photo within the album. */ public static void startMailPhotoViewActivity(final Context context, final String account, - final ConversationMessage msg, final int photoIndex) { + final String accountType, final ConversationMessage msg, final int photoIndex) { final Intents.PhotoViewIntentBuilder builder = Intents.newPhotoViewIntentBuilder(context, "com.android.mail.photo.MailPhotoViewActivity"); @@ -53,7 +58,7 @@ public class MailPhotoViewActivity extends PhotoViewActivity implements .setProjection(UIProvider.ATTACHMENT_PROJECTION) .setPhotoIndex(photoIndex); - context.startActivity(wrapIntent(builder.build(), account, msg)); + context.startActivity(wrapIntent(builder.build(), account, accountType, msg)); } /** @@ -62,14 +67,15 @@ public class MailPhotoViewActivity extends PhotoViewActivity implements * @param initialPhotoUri The uri of the photo to show first. */ public static void startMailPhotoViewActivity(final Context context, final String account, - final ConversationMessage msg, final String initialPhotoUri) { + final String accountType, final ConversationMessage msg, final String initialPhotoUri) { context.startActivity( - buildMailPhotoViewActivityIntent(context, account, msg, initialPhotoUri)); + buildMailPhotoViewActivityIntent(context, account, accountType, msg, + initialPhotoUri)); } public static Intent buildMailPhotoViewActivityIntent( - final Context context, final String account, final ConversationMessage msg, - final String initialPhotoUri) { + final Context context, final String account, final String accountType, + final ConversationMessage msg, final String initialPhotoUri) { final Intents.PhotoViewIntentBuilder builder = Intents.newPhotoViewIntentBuilder( context, "com.android.mail.photo.MailPhotoViewActivity"); @@ -77,13 +83,15 @@ public class MailPhotoViewActivity extends PhotoViewActivity implements .setProjection(UIProvider.ATTACHMENT_PROJECTION) .setInitialPhotoUri(initialPhotoUri); - return wrapIntent(builder.build(), account, msg); + return wrapIntent(builder.build(), account, accountType, msg); } private static Intent wrapIntent( - final Intent intent, final String account, final ConversationMessage msg) { + final Intent intent, final String account, final String accountType, + final ConversationMessage msg) { intent.putExtra(EXTRA_MESSAGE, msg); intent.putExtra(EXTRA_ACCOUNT, account); + intent.putExtra(EXTRA_ACCOUNT_TYPE, accountType); intent.putExtra(EXTRA_HIDE_EXTRA_OPTION_ONE, msg.getConversation() == null); return intent; } diff --git a/src/com/android/mail/photo/MailPhotoViewController.java b/src/com/android/mail/photo/MailPhotoViewController.java index 4945c6b80..28a88deb7 100644 --- a/src/com/android/mail/photo/MailPhotoViewController.java +++ b/src/com/android/mail/photo/MailPhotoViewController.java @@ -68,6 +68,7 @@ public class MailPhotoViewController extends PhotoViewController { private static final String LOG_TAG = LogTag.getLogTag(); + private String mAccountType; private MenuItem mSaveItem; private MenuItem mSaveAllItem; private MenuItem mShareItem; @@ -97,6 +98,7 @@ public class MailPhotoViewController extends PhotoViewController { mActionHandler.initialize(mMailActivity.getFragmentManager()); final Intent intent = mMailActivity.getIntent(); + mAccountType = intent.getStringExtra(MailPhotoViewActivity.EXTRA_ACCOUNT_TYPE); final String account = intent.getStringExtra(MailPhotoViewActivity.EXTRA_ACCOUNT); final Message msg = intent.getParcelableExtra(MailPhotoViewActivity.EXTRA_MESSAGE); mHideExtraOptionOne = intent.getBooleanExtra( @@ -176,12 +178,9 @@ public class MailPhotoViewController extends PhotoViewController { mShareItem.setEnabled(canShare); mPrintItem.setEnabled(canShare); mDownloadAgainItem.setEnabled(attachment.canSave() && attachment.isDownloading()); - if (mHideExtraOptionOne) { - mExtraOption1Item.setVisible(false); - } else { - mExtraOption1Item.setEnabled( - mActionHandler.shouldShowExtraOption1(attachment.getContentType())); - } + mExtraOption1Item.setVisible(!mHideExtraOptionOne && + mActionHandler.shouldShowExtraOption1(mAccountType, + attachment.getContentType())); } else { if (mMenu != null) { mMenu.setGroupEnabled(R.id.photo_view_menu_group, false); diff --git a/src/com/android/mail/ui/AttachmentTileGrid.java b/src/com/android/mail/ui/AttachmentTileGrid.java index 5b1e76f95..76df2a57e 100644 --- a/src/com/android/mail/ui/AttachmentTileGrid.java +++ b/src/com/android/mail/ui/AttachmentTileGrid.java @@ -114,7 +114,7 @@ public class AttachmentTileGrid extends FrameLayout implements AttachmentPreview final int photoIndex = indexOfChild(source); MailPhotoViewActivity.startMailPhotoViewActivity(getContext(), mAccount.getEmailAddress(), - mMessage, photoIndex); + mAccount.getType(), mMessage, photoIndex); } @Override |