From a123fb85b67ea692040be69fbec737871a607f69 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 31 Mar 2020 10:12:03 +0200 Subject: [PATCH] Selectable folders only --- .../java/eu/faircode/email/FragmentAccount.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index caf869efa1..f03c664210 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -24,6 +24,7 @@ import android.accounts.AccountManager; import android.app.NotificationManager; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.Color; import android.graphics.Paint; import android.net.Uri; @@ -58,6 +59,7 @@ import androidx.annotation.Nullable; import androidx.constraintlayout.widget.Group; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.Lifecycle; +import androidx.preference.PreferenceManager; import com.google.android.material.snackbar.Snackbar; import com.google.android.material.textfield.TextInputLayout; @@ -651,6 +653,9 @@ public class FragmentAccount extends FragmentBase { if (TextUtils.isEmpty(realm)) realm = null; + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean subscribed_only = prefs.getBoolean("subscribed_only", false); + DB db = DB.getInstance(context); CheckResult result = new CheckResult(); @@ -679,8 +684,15 @@ public class FragmentAccount extends FragmentBase { String[] attrs = ((IMAPFolder) ifolder).getAttributes(); Log.i(fullName + " attrs=" + TextUtils.join(" ", attrs)); String type = EntityFolder.getType(attrs, fullName, true); + boolean subscribed = ifolder.isSubscribed(); - if (type != null) { + boolean selectable = true; + for (String attr : attrs) + if (attr.equalsIgnoreCase("\\NoSelect")) + selectable = false; + selectable = selectable && ((ifolder.getType() & IMAPFolder.HOLDS_MESSAGES) != 0); + + if (type != null && selectable && (!subscribed_only || subscribed)) { // Create entry EntityFolder folder = db.folder().getFolderByName(id, fullName); if (folder == null)