diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index 9f66e6f608..87b2af31be 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -184,9 +184,10 @@ public class AdapterFolder extends RecyclerView.Adapter targets = new ArrayList<>(); for (EntityFolder folder : folders) - if (!folder.hide && + if (!folder.isHidden(context) && !folder.id.equals(message.folder) && !EntityFolder.ARCHIVE.equals(folder.type) && !EntityFolder.TRASH.equals(folder.type) && diff --git a/app/src/main/java/eu/faircode/email/EntityFolder.java b/app/src/main/java/eu/faircode/email/EntityFolder.java index bac0e0237e..d39a1bf60c 100644 --- a/app/src/main/java/eu/faircode/email/EntityFolder.java +++ b/app/src/main/java/eu/faircode/email/EntityFolder.java @@ -20,6 +20,8 @@ package eu.faircode.email; */ import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import androidx.annotation.NonNull; import androidx.room.Entity; @@ -199,6 +201,16 @@ public class EntityFolder implements Serializable { return R.drawable.baseline_folder_24; } + boolean isHidden(Context context) { + if (hide) + return true; + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean subscriptions = prefs.getBoolean("subscriptions", false); + + return (subscriptions && subscribed != null && !subscribed); + } + String getDisplayName(Context context) { return (display == null ? Helper.localizeFolderName(context, name) : display); } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 87787b8718..f67485180a 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1144,7 +1144,7 @@ public class FragmentMessages extends FragmentBase { List targets = new ArrayList<>(); List folders = db.folder().getFolders(account.id); for (EntityFolder target : folders) - if (!target.hide && + if (!target.isHidden(getContext()) && !EntityFolder.ARCHIVE.equals(target.type) && !EntityFolder.TRASH.equals(target.type) && !EntityFolder.JUNK.equals(target.type) &&