From 02ad6be8af5c2e6d5e592723cf8fec9bfad1565f Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 5 Dec 2019 17:19:19 +0100 Subject: [PATCH] Time based attachment progress --- .../main/java/eu/faircode/email/MessageHelper.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 7d66884d66..7827ac9e54 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -89,6 +89,7 @@ public class MessageHelper { static final int SMALL_MESSAGE_SIZE = 32 * 1024; // bytes static final int DEFAULT_ATTACHMENT_DOWNLOAD_SIZE = 256 * 1024; // bytes + static final long ATTACHMENT_PROGRESS_UPDATE = 1500L; // milliseconds static void setSystemProperties(Context context) { System.setProperty("mail.mime.decodetext.strict", "false"); @@ -1297,7 +1298,7 @@ public class MessageHelper { try (InputStream is = apart.part.getInputStream()) { long size = 0; long total = apart.part.getSize(); - int lastprogress = 0; + long lastprogress = System.currentTimeMillis(); try (OutputStream os = new FileOutputStream(file)) { byte[] buffer = new byte[Helper.BUFFER_SIZE]; @@ -1307,10 +1308,10 @@ public class MessageHelper { // Update progress if (total > 0) { - int progress = (int) (size * 100 / total / 20 * 20); - if (progress != lastprogress) { - lastprogress = progress; - db.attachment().setProgress(local.id, progress); + long now = System.currentTimeMillis(); + if (now - lastprogress > ATTACHMENT_PROGRESS_UPDATE) { + lastprogress = now; + db.attachment().setProgress(local.id, (int) (size * 100 / total)); } } }