Loading k9mail-library/src/main/java/com/fsck/k9/mail/internet/MessageExtractor.java +17 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,23 @@ public class MessageExtractor { } } public static boolean hasMissingParts(Part part) { Body body = part.getBody(); if (body == null) { return true; } if (body instanceof Multipart) { Multipart multipart = (Multipart) body; for (Part subPart : multipart.getBodyParts()) { if (hasMissingParts(subPart)) { return true; } } } return false; } /** Traverse the MIME tree of a message an extract viewable parts. */ public static void findViewablesAndAttachments(Part part, @Nullable List<Viewable> outputViewableParts, @Nullable List<Part> outputNonViewableParts) Loading k9mail/src/main/java/com/fsck/k9/activity/MessageCompose.java +1 −1 Original line number Diff line number Diff line Loading @@ -1558,7 +1558,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, } @Override public void onMessageViewInfoLoadFailed(LocalMessage localMessage) { public void onMessageViewInfoLoadFailed(LocalMessage localMessage, MessageViewInfo messageViewInfo) { mHandler.sendEmptyMessage(MSG_PROGRESS_OFF); Toast.makeText(MessageCompose.this, R.string.status_invalid_id_error, Toast.LENGTH_LONG).show(); } Loading k9mail/src/main/java/com/fsck/k9/activity/MessageLoaderHelper.java +12 −7 Original line number Diff line number Diff line Loading @@ -152,10 +152,6 @@ public class MessageLoaderHelper { @UiThread public void downloadCompleteMessage() { if (localMessage.isSet(Flag.X_DOWNLOADED_FULL)) { return; } startDownloadingMessageBody(true); } Loading Loading @@ -191,7 +187,9 @@ public class MessageLoaderHelper { callback.onMessageDataLoadFinished(localMessage); if (localMessage.isBodyMissing()) { boolean messageIncomplete = !localMessage.isSet(Flag.X_DOWNLOADED_FULL) && !localMessage.isSet(Flag.X_DOWNLOADED_PARTIAL); if (messageIncomplete) { startDownloadingMessageBody(false); return; } Loading Loading @@ -334,13 +332,20 @@ public class MessageLoaderHelper { } if (messageViewInfo == null) { callback.onMessageViewInfoLoadFailed(localMessage); messageViewInfo = createErrorStateMessageViewInfo(); callback.onMessageViewInfoLoadFailed(localMessage, messageViewInfo); return; } callback.onMessageViewInfoLoadFinished(localMessage, messageViewInfo); } @NonNull private MessageViewInfo createErrorStateMessageViewInfo() { boolean isMessageIncomplete = !localMessage.isSet(Flag.X_DOWNLOADED_FULL); return MessageViewInfo.createWithErrorState(localMessage, isMessageIncomplete); } private void cancelAndClearDecodeLoader() { loaderManager.destroyLoader(DECODE_MESSAGE_LOADER_ID); } Loading Loading @@ -428,7 +433,7 @@ public class MessageLoaderHelper { void onMessageDataLoadFailed(); void onMessageViewInfoLoadFinished(LocalMessage localMessage, MessageViewInfo messageViewInfo); void onMessageViewInfoLoadFailed(LocalMessage localMessage); void onMessageViewInfoLoadFailed(LocalMessage localMessage, MessageViewInfo messageViewInfo); void setLoadingProgress(int current, int max); Loading k9mail/src/main/java/com/fsck/k9/controller/MessagingController.java +1 −1 Original line number Diff line number Diff line Loading @@ -2755,7 +2755,7 @@ public class MessagingController implements Runnable { message.setFlag(Flag.X_DOWNLOADED_PARTIAL, false); }*/ if (!message.isSet(Flag.X_DOWNLOADED_FULL)) { /*if (!message.isSet(Flag.X_DOWNLOADED_FULL)) */ { /* * At this point the message is not available, so we need to download it * fully if possible. Loading k9mail/src/main/java/com/fsck/k9/mailstore/LocalFolder.java +4 −2 Original line number Diff line number Diff line Loading @@ -768,10 +768,12 @@ public class LocalFolder extends Folder<LocalMessage> implements Serializable { String encoding = cursor.getString(7); File file = localStore.getAttachmentFile(Long.toString(id)); if (file.exists()) { Body body = new FileBackedBody(file, encoding); part.setBody(body); } } } private void parseHeaderBytes(Part part, byte[] header) throws MessagingException { MessageHeaderParser.parse(part, new ByteArrayInputStream(header)); Loading Loading
k9mail-library/src/main/java/com/fsck/k9/mail/internet/MessageExtractor.java +17 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,23 @@ public class MessageExtractor { } } public static boolean hasMissingParts(Part part) { Body body = part.getBody(); if (body == null) { return true; } if (body instanceof Multipart) { Multipart multipart = (Multipart) body; for (Part subPart : multipart.getBodyParts()) { if (hasMissingParts(subPart)) { return true; } } } return false; } /** Traverse the MIME tree of a message an extract viewable parts. */ public static void findViewablesAndAttachments(Part part, @Nullable List<Viewable> outputViewableParts, @Nullable List<Part> outputNonViewableParts) Loading
k9mail/src/main/java/com/fsck/k9/activity/MessageCompose.java +1 −1 Original line number Diff line number Diff line Loading @@ -1558,7 +1558,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, } @Override public void onMessageViewInfoLoadFailed(LocalMessage localMessage) { public void onMessageViewInfoLoadFailed(LocalMessage localMessage, MessageViewInfo messageViewInfo) { mHandler.sendEmptyMessage(MSG_PROGRESS_OFF); Toast.makeText(MessageCompose.this, R.string.status_invalid_id_error, Toast.LENGTH_LONG).show(); } Loading
k9mail/src/main/java/com/fsck/k9/activity/MessageLoaderHelper.java +12 −7 Original line number Diff line number Diff line Loading @@ -152,10 +152,6 @@ public class MessageLoaderHelper { @UiThread public void downloadCompleteMessage() { if (localMessage.isSet(Flag.X_DOWNLOADED_FULL)) { return; } startDownloadingMessageBody(true); } Loading Loading @@ -191,7 +187,9 @@ public class MessageLoaderHelper { callback.onMessageDataLoadFinished(localMessage); if (localMessage.isBodyMissing()) { boolean messageIncomplete = !localMessage.isSet(Flag.X_DOWNLOADED_FULL) && !localMessage.isSet(Flag.X_DOWNLOADED_PARTIAL); if (messageIncomplete) { startDownloadingMessageBody(false); return; } Loading Loading @@ -334,13 +332,20 @@ public class MessageLoaderHelper { } if (messageViewInfo == null) { callback.onMessageViewInfoLoadFailed(localMessage); messageViewInfo = createErrorStateMessageViewInfo(); callback.onMessageViewInfoLoadFailed(localMessage, messageViewInfo); return; } callback.onMessageViewInfoLoadFinished(localMessage, messageViewInfo); } @NonNull private MessageViewInfo createErrorStateMessageViewInfo() { boolean isMessageIncomplete = !localMessage.isSet(Flag.X_DOWNLOADED_FULL); return MessageViewInfo.createWithErrorState(localMessage, isMessageIncomplete); } private void cancelAndClearDecodeLoader() { loaderManager.destroyLoader(DECODE_MESSAGE_LOADER_ID); } Loading Loading @@ -428,7 +433,7 @@ public class MessageLoaderHelper { void onMessageDataLoadFailed(); void onMessageViewInfoLoadFinished(LocalMessage localMessage, MessageViewInfo messageViewInfo); void onMessageViewInfoLoadFailed(LocalMessage localMessage); void onMessageViewInfoLoadFailed(LocalMessage localMessage, MessageViewInfo messageViewInfo); void setLoadingProgress(int current, int max); Loading
k9mail/src/main/java/com/fsck/k9/controller/MessagingController.java +1 −1 Original line number Diff line number Diff line Loading @@ -2755,7 +2755,7 @@ public class MessagingController implements Runnable { message.setFlag(Flag.X_DOWNLOADED_PARTIAL, false); }*/ if (!message.isSet(Flag.X_DOWNLOADED_FULL)) { /*if (!message.isSet(Flag.X_DOWNLOADED_FULL)) */ { /* * At this point the message is not available, so we need to download it * fully if possible. Loading
k9mail/src/main/java/com/fsck/k9/mailstore/LocalFolder.java +4 −2 Original line number Diff line number Diff line Loading @@ -768,10 +768,12 @@ public class LocalFolder extends Folder<LocalMessage> implements Serializable { String encoding = cursor.getString(7); File file = localStore.getAttachmentFile(Long.toString(id)); if (file.exists()) { Body body = new FileBackedBody(file, encoding); part.setBody(body); } } } private void parseHeaderBytes(Part part, byte[] header) throws MessagingException { MessageHeaderParser.parse(part, new ByteArrayInputStream(header)); Loading