From b95947d079cdb1cdcadfff6bcd6e0d38e5b7e04f Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 24 Apr 2023 16:23:15 +0200 Subject: [PATCH] Added option to move sent messages when moving a conversation --- .../java/eu/faircode/email/FragmentMessages.java | 6 +++++- .../eu/faircode/email/FragmentOptionsBehavior.java | 12 +++++++++++- .../main/res/layout/fragment_options_behavior.xml | 13 ++++++++++++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index f58aec66d0..cd2c8f33d9 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -4520,6 +4520,9 @@ public class FragmentMessages extends FragmentBase boolean filter_archive = args.getBoolean("filter_archive"); long tid = args.getLong("folder"); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean move_thread_sent = prefs.getBoolean("move_thread_sent", false); + ArrayList result = new ArrayList<>(); DB db = DB.getInstance(context); @@ -4540,7 +4543,8 @@ public class FragmentMessages extends FragmentBase EntityFolder sourceFolder = db.folder().getFolder(threaded.folder); if (sourceFolder != null && !sourceFolder.read_only && !targetFolder.id.equals(threaded.folder) && - !EntityFolder.isOutgoing(sourceFolder.type) && + (!EntityFolder.isOutgoing(sourceFolder.type) || + (EntityFolder.SENT.equals(sourceFolder.type) && move_thread_sent)) && (!filter_archive || !EntityFolder.ARCHIVE.equals(sourceFolder.type))) result.add(new MessageTarget(context, threaded, account, sourceFolder, account, targetFolder)); } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index 0db3e858f9..a4e061d313 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -100,6 +100,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swAutoBlockSender; private SwitchCompat swAutoHideAnswer; private SwitchCompat swSwipeReply; + private SwitchCompat swMoveThreadSent; private Button btnDefaultFolder; private TextView tvDefaultFolder; @@ -119,7 +120,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe "autoclose", "onclose", "autoclose_unseen", "autoclose_send", "collapse_marked", "undo_timeout", "autoread", "flag_snoozed", "autounflag", "auto_important", "reset_importance", "thread_sent_trash", - "reset_snooze", "auto_block_sender", "auto_hide_answer", "swipe_reply", "default_folder" + "reset_snooze", "auto_block_sender", "auto_hide_answer", "swipe_reply", "move_thread_sent", "default_folder" }; @Override @@ -179,6 +180,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swAutoBlockSender = view.findViewById(R.id.swAutoBlockSender); swAutoHideAnswer = view.findViewById(R.id.swAutoHideAnswer); swSwipeReply = view.findViewById(R.id.swSwipeReply); + swMoveThreadSent = view.findViewById(R.id.swMoveThreadSent); btnDefaultFolder = view.findViewById(R.id.btnDefaultFolder); tvDefaultFolder = view.findViewById(R.id.tvDefaultFolder); @@ -562,6 +564,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); + swMoveThreadSent.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("move_thread_sent", checked).apply(); + } + }); + Intent tree = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); Helper.openAdvanced(getContext(), tree); PackageManager pm = getContext().getPackageManager(); @@ -711,6 +720,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swAutoBlockSender.setChecked(prefs.getBoolean("auto_block_sender", true)); swAutoHideAnswer.setChecked(prefs.getBoolean("auto_hide_answer", !accessibility)); swSwipeReply.setChecked(prefs.getBoolean("swipe_reply", false)); + swMoveThreadSent.setChecked(prefs.getBoolean("move_thread_sent", false)); tvDefaultFolder.setText(prefs.getString("default_folder", null)); } diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index c069066a2d..8d2d9aa37d 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -818,6 +818,17 @@ app:layout_constraintTop_toBottomOf="@id/swAutoHideAnswer" app:switchPadding="12dp" /> + +