Merge "Prevent NPE if message not found"
This commit is contained in:
commit
cec3719547
@ -2234,54 +2234,54 @@ outer:
|
|||||||
Context context = getContext();
|
Context context = getContext();
|
||||||
long messageId = Long.parseLong(id);
|
long messageId = Long.parseLong(id);
|
||||||
Message msg = Message.restoreMessageWithId(context, messageId);
|
Message msg = Message.restoreMessageWithId(context, messageId);
|
||||||
if (msg != null && (msg.mFlagLoaded == Message.FLAG_LOADED_PARTIAL)) {
|
|
||||||
EmailServiceProxy service =
|
|
||||||
EmailServiceUtils.getServiceForAccount(context, null, msg.mAccountKey);
|
|
||||||
try {
|
|
||||||
service.loadMore(messageId);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
// Nothing to do
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Body body = Body.restoreBodyWithMessageId(context, messageId);
|
|
||||||
ContentValues values = new ContentValues();
|
ContentValues values = new ContentValues();
|
||||||
if (body != null) {
|
if (msg != null) {
|
||||||
if (body.mHtmlContent != null) {
|
if (msg.mFlagLoaded == Message.FLAG_LOADED_PARTIAL) {
|
||||||
if (IMG_TAG_START_REGEX.matcher(body.mHtmlContent).find()) {
|
EmailServiceProxy service =
|
||||||
values.put(UIProvider.MessageColumns.EMBEDS_EXTERNAL_RESOURCES, 1);
|
EmailServiceUtils.getServiceForAccount(context, null, msg.mAccountKey);
|
||||||
|
try {
|
||||||
|
service.loadMore(messageId);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
// Nothing to do
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
Body body = Body.restoreBodyWithMessageId(context, messageId);
|
||||||
Address[] fromList = Address.unpack(msg.mFrom);
|
if (body != null) {
|
||||||
int autoShowImages = 0;
|
if (body.mHtmlContent != null) {
|
||||||
Preferences prefs = Preferences.getPreferences(context);
|
if (IMG_TAG_START_REGEX.matcher(body.mHtmlContent).find()) {
|
||||||
for (Address sender : fromList) {
|
values.put(UIProvider.MessageColumns.EMBEDS_EXTERNAL_RESOURCES, 1);
|
||||||
String email = sender.getAddress();
|
}
|
||||||
if (prefs.shouldShowImagesFor(email)) {
|
}
|
||||||
autoShowImages = 1;
|
}
|
||||||
break;
|
Address[] fromList = Address.unpack(msg.mFrom);
|
||||||
|
int autoShowImages = 0;
|
||||||
|
Preferences prefs = Preferences.getPreferences(context);
|
||||||
|
for (Address sender : fromList) {
|
||||||
|
String email = sender.getAddress();
|
||||||
|
if (prefs.shouldShowImagesFor(email)) {
|
||||||
|
autoShowImages = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
values.put(UIProvider.MessageColumns.ALWAYS_SHOW_IMAGES, autoShowImages);
|
||||||
|
// Add attachments...
|
||||||
|
Attachment[] atts = Attachment.restoreAttachmentsWithMessageId(context, messageId);
|
||||||
|
if (atts.length > 0) {
|
||||||
|
ArrayList<com.android.mail.providers.Attachment> uiAtts =
|
||||||
|
new ArrayList<com.android.mail.providers.Attachment>();
|
||||||
|
for (Attachment att : atts) {
|
||||||
|
com.android.mail.providers.Attachment uiAtt =
|
||||||
|
new com.android.mail.providers.Attachment();
|
||||||
|
uiAtt.name = att.mFileName;
|
||||||
|
uiAtt.contentType = att.mMimeType;
|
||||||
|
uiAtt.size = (int) att.mSize;
|
||||||
|
uiAtt.uri = uiUri("uiattachment", att.mId);
|
||||||
|
uiAtts.add(uiAtt);
|
||||||
|
}
|
||||||
|
values.put(UIProvider.MessageColumns.ATTACHMENTS,
|
||||||
|
com.android.mail.providers.Attachment.toJSONArray(uiAtts));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
values.put(UIProvider.MessageColumns.ALWAYS_SHOW_IMAGES, autoShowImages);
|
|
||||||
|
|
||||||
// Add attachments...
|
|
||||||
Attachment[] atts = Attachment.restoreAttachmentsWithMessageId(context, messageId);
|
|
||||||
if (atts.length > 0) {
|
|
||||||
ArrayList<com.android.mail.providers.Attachment> uiAtts =
|
|
||||||
new ArrayList<com.android.mail.providers.Attachment>();
|
|
||||||
for (Attachment att: atts) {
|
|
||||||
com.android.mail.providers.Attachment uiAtt =
|
|
||||||
new com.android.mail.providers.Attachment();
|
|
||||||
uiAtt.name = att.mFileName;
|
|
||||||
uiAtt.contentType = att.mMimeType;
|
|
||||||
uiAtt.size = (int)att.mSize;
|
|
||||||
uiAtt.uri = uiUri("uiattachment", att.mId);
|
|
||||||
uiAtts.add(uiAtt);
|
|
||||||
}
|
|
||||||
values.put(UIProvider.MessageColumns.ATTACHMENTS,
|
|
||||||
com.android.mail.providers.Attachment.toJSONArray(uiAtts));
|
|
||||||
}
|
|
||||||
|
|
||||||
StringBuilder sb = genSelect(sMessageViewMap, uiProjection, values);
|
StringBuilder sb = genSelect(sMessageViewMap, uiProjection, values);
|
||||||
sb.append(" FROM " + Message.TABLE_NAME + "," + Body.TABLE_NAME + " WHERE " +
|
sb.append(" FROM " + Message.TABLE_NAME + "," + Body.TABLE_NAME + " WHERE " +
|
||||||
Body.MESSAGE_KEY + "=" + Message.TABLE_NAME + "." + Message.RECORD_ID + " AND " +
|
Body.MESSAGE_KEY + "=" + Message.TABLE_NAME + "." + Message.RECORD_ID + " AND " +
|
||||||
|
Loading…
Reference in New Issue
Block a user