summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Blank <mblank@google.com>2012-01-17 15:35:42 -0800
committerMarc Blank <mblank@google.com>2012-01-17 15:38:24 -0800
commitc8afa2f5cbdcc9b3c59d93e9a8ab1bc1e75dd91f (patch)
tree7d820029683ffe073731c4dda17d64db3b4dcb4a
parent1d3f98c5229d0cb9f270a1601b71b8d887cf5416 (diff)
downloadandroid_packages_apps_Email-c8afa2f5cbdcc9b3c59d93e9a8ab1bc1e75dd91f.tar.gz
android_packages_apps_Email-c8afa2f5cbdcc9b3c59d93e9a8ab1bc1e75dd91f.tar.bz2
android_packages_apps_Email-c8afa2f5cbdcc9b3c59d93e9a8ab1bc1e75dd91f.zip
Send attachments w/ UnifiedEmail outgoing mail
Change-Id: I471816dcaac1ab53aea1465dd69ae4453a1a0268
-rw-r--r--Android.mk4
-rw-r--r--src/com/android/email/provider/EmailProvider.java28
2 files changed, 31 insertions, 1 deletions
diff --git a/Android.mk b/Android.mk
index c59ed30ae..41c2a7b38 100644
--- a/Android.mk
+++ b/Android.mk
@@ -26,7 +26,9 @@ unified_email_src_dir := ../UnifiedEmail/src
imported_unified_email_files := \
$(unified_email_src_dir)/com/android/mail/providers/UIProviderValidator.java \
- $(unified_email_src_dir)/com/android/mail/providers/UIProvider.java
+ $(unified_email_src_dir)/com/android/mail/providers/UIProvider.java \
+ $(unified_email_src_dir)/com/android/mail/providers/Attachment.java \
+ $(unified_email_src_dir)/com/android/mail/providers/Message.java
LOCAL_MODULE_TAGS := optional
diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java
index 10847fc34..67d2489b8 100644
--- a/src/com/android/email/provider/EmailProvider.java
+++ b/src/com/android/email/provider/EmailProvider.java
@@ -2999,6 +2999,22 @@ outer:
return c;
}
+ /**
+ * Convert a UIProvider attachment to an EmailProvider attachment (for sending); we only need
+ * a few of the fields
+ * @param uiAtt the UIProvider attachment to convert
+ * @return the EmailProvider attachment
+ */
+ private Attachment convertUiAttachmentToAttachment(
+ com.android.mail.providers.Attachment uiAtt) {
+ Attachment att = new Attachment();
+ att.mContentUri = uiAtt.contentUri;
+ att.mFileName = uiAtt.name;
+ att.mMimeType = uiAtt.mimeType;
+ att.mSize = uiAtt.size;
+ return att;
+ }
+
private int uiSendmail(Uri uri, ContentValues values) {
Context context = getContext();
String accountName = uri.getPathSegments().get(1);
@@ -3016,6 +3032,18 @@ outer:
msg.mHtml = values.getAsString(UIProvider.MessageColumns.BODY_HTML);
msg.mMailboxKey = mailbox.mId;
msg.mAccountKey = mailbox.mAccountKey;
+ // Get attachments from the ContentValues
+ ArrayList<com.android.mail.providers.Attachment> uiAtts =
+ com.android.mail.providers.Attachment.getAttachmentsFromJoinedAttachmentInfo(
+ values.getAsString(UIProvider.MessageColumns.JOINED_ATTACHMENT_INFOS));
+ ArrayList<Attachment> atts = new ArrayList<Attachment>();
+ for (com.android.mail.providers.Attachment uiAtt: uiAtts) {
+ // Convert to our attachments and add to the list; everything else should "just work"
+ atts.add(convertUiAttachmentToAttachment(uiAtt));
+ }
+ if (!atts.isEmpty()) {
+ msg.mAttachments = atts;
+ }
// Save it
msg.save(context);
return 1;