diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java
index 7db77ff0eb..12b30089bb 100644
--- a/app/src/main/java/eu/faircode/email/Core.java
+++ b/app/src/main/java/eu/faircode/email/Core.java
@@ -3025,7 +3025,7 @@ class Core {
folder.setSpecials(account);
if (selectable) {
- folder.inheritFrom(parent);
+ folder.inheritFrom(parent, context);
if (user && sync_added_folders && EntityFolder.USER.equals(type)) {
folder.synchronize = true;
folder.notify = true;
diff --git a/app/src/main/java/eu/faircode/email/EntityFolder.java b/app/src/main/java/eu/faircode/email/EntityFolder.java
index 533b99355c..123d3aad5b 100644
--- a/app/src/main/java/eu/faircode/email/EntityFolder.java
+++ b/app/src/main/java/eu/faircode/email/EntityFolder.java
@@ -22,9 +22,11 @@ package eu.faircode.email;
import static androidx.room.ForeignKey.CASCADE;
import android.content.Context;
+import android.content.SharedPreferences;
import android.text.TextUtils;
import androidx.annotation.NonNull;
+import androidx.preference.PreferenceManager;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
@@ -331,7 +333,7 @@ public class EntityFolder extends EntityOrder implements Serializable {
display = "Envoyés";
}
- void inheritFrom(EntityFolder parent) {
+ void inheritFrom(EntityFolder parent, Context context) {
if (parent == null)
return;
if (!EntityFolder.USER.equals(type))
@@ -344,6 +346,11 @@ public class EntityFolder extends EntityOrder implements Serializable {
this.sync_days = parent.sync_days;
this.keep_days = parent.keep_days;
this.notify = parent.notify;
+
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ boolean auto_folder_nav = prefs.getBoolean("auto_folder_nav", false);
+ if (auto_folder_nav)
+ this.navigation = true;
}
static boolean shouldPoll(String type) {
diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogSelectFolder.java b/app/src/main/java/eu/faircode/email/FragmentDialogSelectFolder.java
index 58ff9b06d9..386416c9d5 100644
--- a/app/src/main/java/eu/faircode/email/FragmentDialogSelectFolder.java
+++ b/app/src/main/java/eu/faircode/email/FragmentDialogSelectFolder.java
@@ -554,7 +554,7 @@ public class FragmentDialogSelectFolder extends FragmentDialogBase {
folder.type = EntityFolder.USER;
folder.parent = (parent == null ? null : parent.id);
folder.setProperties();
- folder.inheritFrom(parent);
+ folder.inheritFrom(parent, context);
folder.id = db.folder().insertFolder(folder);
}
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
index 1dd6580e70..71188003f3 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
@@ -253,6 +253,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private SwitchCompat swAdjacentLandscape;
private SwitchCompat swDeleteConfirmation;
private SwitchCompat swDeleteNotification;
+ private SwitchCompat swAutoFolderNav;
private SwitchCompat swDmarcViewer;
private EditText etKeywords;
private SwitchCompat swTestIab;
@@ -318,7 +319,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
"easy_correct", "paste_plain", "paste_quote", "favicon_uri", "infra", "email_junk", "tld_flags", "json_ld", "dup_msgids", "thread_byref", "save_user_flags", "mdn",
"app_chooser", "app_chooser_share", "share_task",
"adjacent_links", "adjacent_documents", "adjacent_portrait", "adjacent_landscape",
- "delete_confirmation", "delete_notification", "global_keywords", "test_iab"
+ "delete_confirmation", "delete_notification", "auto_folder_nav", "global_keywords", "test_iab"
));
private final static String[] RESET_QUESTIONS = new String[]{
@@ -526,6 +527,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swAdjacentLandscape = view.findViewById(R.id.swAdjacentLandscape);
swDeleteConfirmation = view.findViewById(R.id.swDeleteConfirmation);
swDeleteNotification = view.findViewById(R.id.swDeleteNotification);
+ swAutoFolderNav = view.findViewById(R.id.swAutoFolderNav);
swDmarcViewer = view.findViewById(R.id.swDmarcViewer);
etKeywords = view.findViewById(R.id.etKeywords);
swTestIab = view.findViewById(R.id.swTestIab);
@@ -1887,6 +1889,13 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
}
});
+ swAutoFolderNav.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ prefs.edit().putBoolean("auto_folder_nav", checked).apply();
+ }
+ });
+
swDmarcViewer.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@@ -2676,6 +2685,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swAdjacentLandscape.setChecked(prefs.getBoolean("adjacent_landscape", false));
swDeleteConfirmation.setChecked(prefs.getBoolean("delete_confirmation", true));
swDeleteNotification.setChecked(prefs.getBoolean("delete_notification", false));
+ swAutoFolderNav.setChecked(prefs.getBoolean("auto_folder_nav", false));
swDmarcViewer.setChecked(Helper.isComponentEnabled(getContext(), ActivityDMARC.class));
etKeywords.setText(prefs.getString("global_keywords", null));
swTestIab.setChecked(prefs.getBoolean("test_iab", false));
diff --git a/app/src/main/res/layout/fragment_options_misc.xml b/app/src/main/res/layout/fragment_options_misc.xml
index 17e58f8b0a..a68dbc792a 100644
--- a/app/src/main/res/layout/fragment_options_misc.xml
+++ b/app/src/main/res/layout/fragment_options_misc.xml
@@ -2308,6 +2308,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swDeleteNotification" />
+
+
Permanent deletion confirmation
Delete permanently from notifications
If you change this setting, please do not complain if you accidentally deleted messages irreversibly
+ Add new folders automatically to the navigation menu
DMARC viewer
Global keywords
Test IAB