From 255589dee553e8e2b3cf428226fd03fc16f364e1 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 2 Sep 2023 19:33:22 +0200 Subject: [PATCH 1/6] Aggressively killing: Meizu, Asus --- app/src/main/java/eu/faircode/email/Helper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 90338a47ca..cb1d74ca6e 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -1601,7 +1601,9 @@ public class Helper { isSamsung() || isOnePlus() || isHuawei() || - isXiaomi()); + isXiaomi() || + isMeizu() || + isAsus()); } static boolean isAndroid12() { From f2fe7d8695d80b19e9757a544b1ff8973cd23790 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 2 Sep 2023 20:13:46 +0200 Subject: [PATCH 2/6] Update leak canary --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 5ce4f29ce6..1fa0410597 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -504,7 +504,7 @@ dependencies { def svg_version = "1.4" def compress_version = "1.22" def ipaddress_version = "5.3.4" - def canary_version = "2.11" + def canary_version = "2.12" def ws_version = "2.14" // https://developer.android.com/jetpack/androidx/releases/startup From 36188126d33ef9f39d69a8fa0c5894b66429ff96 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 2 Sep 2023 20:34:49 +0200 Subject: [PATCH 3/6] Updated vCard library --- app/build.gradle | 2 +- app/src/main/java/eu/faircode/email/MessageHelper.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1fa0410597..6741172759 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -489,7 +489,7 @@ dependencies { def badge_version = "1.1.22" def bugsnag_version = "5.28.2" def biweekly_version = "0.6.6" - def vcard_version = "0.11.3" + def vcard_version = "0.12.1" def relinker_version = "1.4.5" def markwon_version = "4.6.2" def bouncycastle_version = "1.76" diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index ba472f9bf8..4e265c0465 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1267,8 +1267,10 @@ public class MessageHelper { attachment.id = db.attachment().insertAttachment(attachment); File file = attachment.getFile(context); - try (VCardWriter writer = new VCardWriter(file, VCardVersion.V3_0)) { - writer.write(vcard); + try (OutputStream os = new FileOutputStream(file)) { + try (VCardWriter writer = new VCardWriter(os, VCardVersion.V3_0)) { + writer.write(vcard); + } } attachment.size = file.length(); From 870af51fe0e341eeaf11d82ddf9aeac59781c65b Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 2 Sep 2023 20:36:02 +0200 Subject: [PATCH 4/6] Updated changelog --- CHANGELOG.md | 6 ++++++ app/src/main/assets/CHANGELOG.md | 6 ++++++ metadata/en-US/changelogs/2097.txt | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c82698361..8307e7077b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ For support you can use [the contact form](https://contact.faircode.eu/?product= ### [Ubirajara](https://en.wikipedia.org/wiki/Ubirajara_jubatus) +### Next version + +* Small improvements and minor bug fixes +* Updated libraries +* Updated [translations](https://crowdin.com/project/open-source-email) + ### 1.2097 - 2023-09-02 * Added LanguageTool option to check every sentence diff --git a/app/src/main/assets/CHANGELOG.md b/app/src/main/assets/CHANGELOG.md index 6c82698361..8307e7077b 100644 --- a/app/src/main/assets/CHANGELOG.md +++ b/app/src/main/assets/CHANGELOG.md @@ -6,6 +6,12 @@ For support you can use [the contact form](https://contact.faircode.eu/?product= ### [Ubirajara](https://en.wikipedia.org/wiki/Ubirajara_jubatus) +### Next version + +* Small improvements and minor bug fixes +* Updated libraries +* Updated [translations](https://crowdin.com/project/open-source-email) + ### 1.2097 - 2023-09-02 * Added LanguageTool option to check every sentence diff --git a/metadata/en-US/changelogs/2097.txt b/metadata/en-US/changelogs/2097.txt index e01cbe4dd8..1995afc7a5 100644 --- a/metadata/en-US/changelogs/2097.txt +++ b/metadata/en-US/changelogs/2097.txt @@ -6,6 +6,12 @@ For support you can use the contact form. Ubirajara +Next version + +* Small improvements and minor bug fixes +* Updated libraries +* Updated translations + 1.2097 - 2023-09-02 * Added LanguageTool option to check every sentence From 3f7590ac87739486391fadffcb9bbca3724a11c7 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 3 Sep 2023 07:22:08 +0200 Subject: [PATCH 5/6] Less obtrusive sent icon for messages --- .../eu/faircode/email/AdapterMessage.java | 2 +- .../main/res/drawable/twotone_send_24_80.xml | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable/twotone_send_24_80.xml diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 723a82b5e6..4b9f05e5dd 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -1480,7 +1480,7 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? R.drawable.twotone_edit_24 - : EntityFolder.getIcon(outgoing ? EntityFolder.SENT : message.folderType)); + : (outgoing ? R.drawable.twotone_send_24_80 : EntityFolder.getIcon(message.folderType))); ivType.setVisibility(message.drafts > 0 || (viewType == ViewType.UNIFIED && type == null && (!inbox || outgoing)) || (viewType == ViewType.FOLDER && outgoing && !EntityFolder.SENT.equals(message.folderType)) || diff --git a/app/src/main/res/drawable/twotone_send_24_80.xml b/app/src/main/res/drawable/twotone_send_24_80.xml new file mode 100644 index 0000000000..49f382cc99 --- /dev/null +++ b/app/src/main/res/drawable/twotone_send_24_80.xml @@ -0,0 +1,22 @@ + + + + + + From 74cfeaa25a3d1e173c33d0bed75a41cf8b42e47c Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 3 Sep 2023 08:00:34 +0200 Subject: [PATCH 6/6] Added POP3 delete fail-safe --- app/src/main/java/eu/faircode/email/Core.java | 4 +++- app/src/main/java/eu/faircode/email/DaoMessage.java | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index e9ebfaa463..5e10c1a5a8 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -160,6 +160,7 @@ class Core { private static final long EXISTS_RETRY_DELAY = 20 * 1000L; // milliseconds private static final int FIND_RETRY_COUNT = 3; // times private static final long FIND_RETRY_DELAY = 5 * 1000L; // milliseconds + private static final long POP3_KEEP_DELETED = 3 * 24 * 3600 * 1000L; // milliseconds private static final Map> accountIdentities = new HashMap<>(); @@ -3645,7 +3646,8 @@ class Core { if (account.max_messages != null && !account.leave_on_device) { int hidden = db.message().setMessagesUiHide(folder.id, Math.abs(account.max_messages)); - int deleted = db.message().deleteMessagesKeep(folder.id, Math.abs(account.max_messages) + 100); + int deleted = db.message().deleteMessagesKeep(folder.id, + Math.abs(account.max_messages) + 100, new Date().getTime() - POP3_KEEP_DELETED); EntityLog.log(context, account.name + " POP" + " cleanup max=" + account.max_messages + " hidden=" + hidden + diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 252948661c..fd76b09f9a 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -1008,7 +1008,7 @@ public interface DaoMessage { " AND (ui_seen OR :unseen)" + " AND NOT ui_flagged" + " AND stored < :sync_time" + // moved, browsed - " AND (ui_snoozed IS NULL OR ui_snoozed =" + Long.MAX_VALUE+")") + " AND (ui_snoozed IS NULL OR ui_snoozed =" + Long.MAX_VALUE + ")") List getMessagesBefore(long folder, long sync_time, long keep_time, boolean unseen); @Query("DELETE FROM message" + @@ -1028,7 +1028,8 @@ public interface DaoMessage { " AND id NOT IN (" + " SELECT id FROM message" + " WHERE folder = :folder" + + " AND stored < :before" + " ORDER BY received DESC" + " LIMIT :keep)") - int deleteMessagesKeep(long folder, int keep); + int deleteMessagesKeep(long folder, int keep, long before); } \ No newline at end of file