diff --git a/res/values/ids.xml b/res/values/ids.xml index a2b91bfee..b144b9153 100644 --- a/res/values/ids.xml +++ b/res/values/ids.xml @@ -2,5 +2,6 @@ + diff --git a/res/values/strings.xml b/res/values/strings.xml index db250401b..4fd6b3938 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1021,6 +1021,8 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin Delete Do not delete + Downloading attachment + Debug logging to Android logging system enabled ยป diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java index 638aae075..3c2ef4cb3 100644 --- a/src/com/fsck/k9/activity/MessageView.java +++ b/src/com/fsck/k9/activity/MessageView.java @@ -2,6 +2,7 @@ package com.fsck.k9.activity; import android.app.AlertDialog; import android.app.Dialog; +import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -942,9 +943,12 @@ public class MessageView extends K9Activity implements OnClickListener { @Override protected Dialog onCreateDialog(final int id) { switch (id) { - case R.id.dialog_confirm_delete: { - return createConfirmDeleteDialog(id); - } + case R.id.dialog_confirm_delete: return createConfirmDeleteDialog(id); + case R.id.dialog_attachment_progress: + ProgressDialog d = new ProgressDialog(this); + d.setIndeterminate(true); + d.setTitle(R.string.dialog_attachment_progress_title); + return d; } return super.onCreateDialog(id); } @@ -1075,32 +1079,42 @@ public class MessageView extends K9Activity implements OnClickListener { } @Override - public void loadAttachmentStarted(Account account, Message message, Part part, Object tag, boolean requiresDownload) { + public void loadAttachmentStarted(Account account, Message message, Part part, Object tag, final boolean requiresDownload) { if (mMessage != message) { return; } - mMessageView.setAttachmentsEnabled(false); - mHandler.progress(true); - if (requiresDownload) { - mHandler.fetchingAttachment(); - } + mHandler.post(new Runnable() { + @Override + public void run() { + mMessageView.setAttachmentsEnabled(false); + showDialog(R.id.dialog_attachment_progress); + if (requiresDownload) { + mHandler.fetchingAttachment(); + } + } + }); } @Override - public void loadAttachmentFinished(Account account, Message message, Part part, Object tag) { + public void loadAttachmentFinished(Account account, Message message, Part part, final Object tag) { if (mMessage != message) { return; } - mMessageView.setAttachmentsEnabled(true); - mHandler.progress(false); - Object[] params = (Object[]) tag; - boolean download = (Boolean) params[0]; - AttachmentView attachment = (AttachmentView) params[1]; - if (download) { - attachment.writeFile(); - } else { - attachment.showFile(); - } + mHandler.post(new Runnable() { + public void run() { + mMessageView.setAttachmentsEnabled(true); + removeDialog(R.id.dialog_attachment_progress); + Object[] params = (Object[]) tag; + boolean download = (Boolean) params[0]; + AttachmentView attachment = (AttachmentView) params[1]; + if (download) { + attachment.writeFile(); + } else { + attachment.showFile(); + } + + } + }); } @Override @@ -1108,9 +1122,14 @@ public class MessageView extends K9Activity implements OnClickListener { if (mMessage != message) { return; } - mMessageView.setAttachmentsEnabled(true); - mHandler.progress(false); - mHandler.networkError(); + mHandler.post(new Runnable() { + public void run() { + mMessageView.setAttachmentsEnabled(true); + removeDialog(R.id.dialog_attachment_progress); + mHandler.networkError(); + + } + }); } }