Merge "Make draft attachments work correctly" into jb-ub-mail-ur10

This commit is contained in:
Martin Hibdon 2013-09-30 22:23:42 +00:00 committed by Android (Google) Code Review
commit 2cf965b85f

View File

@ -3703,6 +3703,9 @@ public class EmailProvider extends ContentProvider {
final long id = Long.parseLong(uri.getLastPathSegment()); final long id = Long.parseLong(uri.getLastPathSegment());
final Attachment att = Attachment.restoreAttachmentWithId(mContext, id); final Attachment att = Attachment.restoreAttachmentWithId(mContext, id);
if (att == null) return ""; if (att == null) return "";
if (!TextUtils.isEmpty(att.getCachedFileUri())) {
return att.getCachedFileUri();
}
final String contentUri; final String contentUri;
// Until the package installer can handle opening apks from a content:// uri, for // Until the package installer can handle opening apks from a content:// uri, for
@ -3717,6 +3720,7 @@ public class EmailProvider extends ContentProvider {
AttachmentUtilities.getAttachmentUri(att.mAccountKey, id).toString(); AttachmentUtilities.getAttachmentUri(att.mAccountKey, id).toString();
} }
return contentUri; return contentUri;
} else { } else {
return super.getString(column); return super.getString(column);
} }
@ -4016,9 +4020,12 @@ public class EmailProvider extends ContentProvider {
*/ */
// TODO(pwestbro): once the Attachment contains the cached uri, the second parameter can be // TODO(pwestbro): once the Attachment contains the cached uri, the second parameter can be
// removed // removed
// TODO(mhibdon): if the UI Attachment containded the account key, the third parameter could
// be removed.
private static Attachment convertUiAttachmentToAttachment( private static Attachment convertUiAttachmentToAttachment(
com.android.mail.providers.Attachment uiAtt, String cachedFile) { com.android.mail.providers.Attachment uiAtt, String cachedFile, long accountKey) {
final Attachment att = new Attachment(); final Attachment att = new Attachment();
att.setContentUri(uiAtt.contentUri.toString()); att.setContentUri(uiAtt.contentUri.toString());
if (!TextUtils.isEmpty(cachedFile)) { if (!TextUtils.isEmpty(cachedFile)) {
@ -4028,7 +4035,7 @@ public class EmailProvider extends ContentProvider {
cachedFileBuilder.appendQueryParameter(Attachment.CACHED_FILE_QUERY_PARAM, cachedFile); cachedFileBuilder.appendQueryParameter(Attachment.CACHED_FILE_QUERY_PARAM, cachedFile);
att.setCachedFileUri(cachedFileBuilder.build().toString()); att.setCachedFileUri(cachedFileBuilder.build().toString());
} }
att.mAccountKey = accountKey;
att.mFileName = uiAtt.getName(); att.mFileName = uiAtt.getName();
att.mMimeType = uiAtt.getContentType(); att.mMimeType = uiAtt.getContentType();
att.mSize = uiAtt.size; att.mSize = uiAtt.size;
@ -4176,12 +4183,12 @@ public class EmailProvider extends ContentProvider {
} }
} else { } else {
// Cache the attachment. This will allow us to send it, if the permissions are // Cache the attachment. This will allow us to send it, if the permissions are
// revoked // revoked.
final String cachedFileUri = final String cachedFileUri =
AttachmentUtils.cacheAttachmentUri(context, uiAtt, attachmentFds); AttachmentUtils.cacheAttachmentUri(context, uiAtt, attachmentFds);
// Convert external attachment to one of ours and add to the list // Convert external attachment to one of ours and add to the list
atts.add(convertUiAttachmentToAttachment(uiAtt, cachedFileUri)); atts.add(convertUiAttachmentToAttachment(uiAtt, cachedFileUri, msg.mAccountKey));
} }
} }
if (!atts.isEmpty()) { if (!atts.isEmpty()) {