From f31dc74c3daeff2e4029bd1e2dda25ddf1b47ab3 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 8 Jul 2019 09:19:16 +0200 Subject: [PATCH] Added auto trash --- app/src/main/java/eu/faircode/email/Core.java | 10 +++++++--- .../main/java/eu/faircode/email/FragmentFolder.java | 11 +++++++++-- app/src/main/res/values/strings.xml | 3 ++- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 8ff034d2b2..8f1de0a193 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1001,13 +1001,17 @@ class Core { Log.i(folder.name + " sync=" + new Date(sync_time) + " keep=" + new Date(keep_time)); // Delete old local messages - if (auto_delete && EntityFolder.TRASH.equals(folder.type)) { + if (auto_delete) { List tbds = db.message().getMessagesBefore(folder.id, keep_time, delete_unseen); Log.i(folder.name + " local tbd=" + tbds.size()); + EntityFolder trash = db.folder().getFolderByType(folder.account, EntityFolder.TRASH); for (Long tbd : tbds) { EntityMessage message = db.message().getMessage(tbd); - if (message != null) - EntityOperation.queue(context, message, EntityOperation.DELETE); + if (message != null && trash != null) + if (EntityFolder.TRASH.equals(folder.type)) + EntityOperation.queue(context, message, EntityOperation.DELETE); + else + EntityOperation.queue(context, message, EntityOperation.MOVE, trash.id); } } else { int old = db.message().deleteMessagesBefore(folder.id, keep_time, delete_unseen); diff --git a/app/src/main/java/eu/faircode/email/FragmentFolder.java b/app/src/main/java/eu/faircode/email/FragmentFolder.java index eac8160332..bceda7fe1f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolder.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolder.java @@ -209,8 +209,15 @@ public class FragmentFolder extends FragmentBase { cbKeepAll.setChecked(true); else etKeepDays.setText(Integer.toString(folder == null ? EntityFolder.DEFAULT_KEEP : folder.keep_days)); - cbAutoDelete.setChecked(folder == null ? false : folder.auto_delete); - cbAutoDelete.setVisibility(folder != null && EntityFolder.TRASH.equals(folder.type) ? View.VISIBLE : View.GONE); + + if (folder == null || folder.read_only) + cbAutoDelete.setVisibility(View.GONE); + else { + cbAutoDelete.setText(EntityFolder.TRASH.equals(folder.type) + ? R.string.title_auto_delete : R.string.title_auto_trash); + cbAutoDelete.setChecked(folder.auto_delete); + cbAutoDelete.setVisibility(View.VISIBLE); + } } // Consider previous save as cancelled diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ca035e6b8d..4207183973 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -379,7 +379,8 @@ Increasing this value will increase battery and data usage Keep messages (days) Keep all messages - Automatically delete old messages + Automatically move old messages to trash + Automatically permanently delete old messages Folder name missing Folder %1$s exists Permanently delete this folder and any messages it contains?