From ff81e9643264bfa08284f8292b606443b85bc8d0 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 25 Apr 2023 12:37:50 +0200 Subject: [PATCH] Inherit notify when creating subfolder --- .../java/eu/faircode/email/FragmentFolder.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentFolder.java b/app/src/main/java/eu/faircode/email/FragmentFolder.java index 75d17c8d8a..3ed0c4a415 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolder.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolder.java @@ -28,6 +28,7 @@ import android.database.sqlite.SQLiteConstraintException; import android.graphics.Color; import android.os.Bundle; import android.text.TextUtils; +import android.util.Pair; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -276,8 +277,10 @@ public class FragmentFolder extends FragmentBase { Bundle args = new Bundle(); args.putLong("id", id); + args.putLong("account", account); + args.putString("parent", parent); - new SimpleTask() { + new SimpleTask>() { @Override protected void onPreExecute(Bundle args) { pbWait.setVisibility(View.VISIBLE); @@ -290,10 +293,13 @@ public class FragmentFolder extends FragmentBase { } @Override - protected EntityFolder onExecute(Context context, Bundle args) { + protected Pair onExecute(Context context, Bundle args) { long id = args.getLong("id"); + long aid = args.getLong("account"); + String parentName = args.getString("parent"); DB db = DB.getInstance(context); + EntityFolder parent = db.folder().getFolderByName(aid, parentName); EntityFolder folder = db.folder().getFolder(id); if (folder != null) { @@ -303,11 +309,13 @@ public class FragmentFolder extends FragmentBase { } } - return folder; + return new Pair<>(parent, folder); } @Override - protected void onExecuted(Bundle args, EntityFolder folder) { + protected void onExecuted(Bundle args, Pair data) { + EntityFolder parent = data.first; + EntityFolder folder = data.second; int interval = args.getInt("interval", EntityAccount.DEFAULT_KEEP_ALIVE_INTERVAL); if (savedInstanceState == null) { @@ -320,7 +328,7 @@ public class FragmentFolder extends FragmentBase { cbUnified.setChecked(folder == null ? false : folder.unified); cbNavigation.setChecked(folder == null ? false : folder.navigation); cbCountUnread.setChecked(folder == null ? true : folder.count_unread); - cbNotify.setChecked(folder == null ? false : folder.notify); + cbNotify.setChecked(folder == null ? parent != null && parent.notify : folder.notify); cbSynchronize.setChecked(folder == null || folder.synchronize); cbPoll.setChecked(folder == null ? true : folder.poll); etPoll.setText(folder == null ? null : Integer.toString(folder.poll_factor));