From 009551c5406e43e7be7854a023a1fba94c85715e Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 10 Nov 2022 08:04:44 +0100 Subject: [PATCH] Filter providers --- .../java/eu/faircode/email/EmailProvider.java | 16 ++++++++++++---- .../java/eu/faircode/email/EntityAnswer.java | 2 +- .../java/eu/faircode/email/FragmentAccount.java | 2 +- .../java/eu/faircode/email/FragmentIdentity.java | 2 +- .../java/eu/faircode/email/FragmentSetup.java | 2 +- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EmailProvider.java b/app/src/main/java/eu/faircode/email/EmailProvider.java index 1209ee2816..c8eceb25ae 100644 --- a/app/src/main/java/eu/faircode/email/EmailProvider.java +++ b/app/src/main/java/eu/faircode/email/EmailProvider.java @@ -177,7 +177,7 @@ public class EmailProvider implements Parcelable { return result; } - static List loadProfiles(Context context) { + private static List loadProfiles(Context context) { List result = null; try { @@ -297,7 +297,7 @@ public class EmailProvider implements Parcelable { } else throw new IllegalAccessException(name); } else if (eventType == XmlPullParser.END_TAG) { - if ("provider".equals(xml.getName()) && provider.enabled) { + if ("provider".equals(xml.getName())) { result.add(provider); provider = null; } @@ -312,12 +312,12 @@ public class EmailProvider implements Parcelable { return result; } - static boolean getAttributeBooleanValue(XmlPullParser parser, String name, boolean defaultValue) { + private static boolean getAttributeBooleanValue(XmlPullParser parser, String name, boolean defaultValue) { String value = parser.getAttributeValue(null, name); return (value == null ? defaultValue : Boolean.parseBoolean(value)); } - static int getAttributeIntValue(XmlPullParser parser, String name, int defaultValue) { + private static int getAttributeIntValue(XmlPullParser parser, String name, int defaultValue) { String value = parser.getAttributeValue(null, name); return (value == null ? defaultValue : Integer.parseInt(value)); } @@ -331,6 +331,14 @@ public class EmailProvider implements Parcelable { throw new FileNotFoundException("provider id=" + id); } + static List getProviders(Context context) { + List result = new ArrayList<>(); + for (EmailProvider provider : loadProfiles(context)) + if (provider.enabled) + result.add(provider); + return result; + } + @NonNull static List fromDomain(Context context, String domain, Discover discover) throws IOException { return fromEmail(context, domain, discover); diff --git a/app/src/main/java/eu/faircode/email/EntityAnswer.java b/app/src/main/java/eu/faircode/email/EntityAnswer.java index aafafe0dc0..142abfe21f 100644 --- a/app/src/main/java/eu/faircode/email/EntityAnswer.java +++ b/app/src/main/java/eu/faircode/email/EntityAnswer.java @@ -360,7 +360,7 @@ public class EntityAnswer implements Serializable { if (compose && BuildConfig.DEBUG) { SubMenu profiles = main.addSubMenu(Menu.NONE, order, order++, "Profiles"); - for (EmailProvider p : EmailProvider.loadProfiles(context)) { + for (EmailProvider p : EmailProvider.getProviders(context)) { SpannableStringBuilder ssb = new SpannableStringBuilderEx(); int start; ssb.append("IMAP (account, receive)"); diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 0aa00c91fe..a29385b24d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -1555,7 +1555,7 @@ public class FragmentAccount extends FragmentBase { protected void onExecuted(Bundle args, final EntityAccount account) { // Get providers final Context context = getContext(); - List providers = EmailProvider.loadProfiles(context); + List providers = EmailProvider.getProviders(context); providers.add(0, new EmailProvider(getString(R.string.title_select))); providers.add(1, new EmailProvider(getString(R.string.title_custom))); diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java index cb818b0b6a..93653aad48 100644 --- a/app/src/main/java/eu/faircode/email/FragmentIdentity.java +++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java @@ -1280,7 +1280,7 @@ public class FragmentIdentity extends FragmentBase { cbEncryptDefault.setEnabled(!encrypt_default); // Get providers - List providers = EmailProvider.loadProfiles(getContext()); + List providers = EmailProvider.getProviders(getContext()); providers.add(0, new EmailProvider(getString(R.string.title_custom))); ArrayAdapter aaProfile = diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 55d9e2a222..62ed859c01 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -282,7 +282,7 @@ public class FragmentSetup extends FragmentBase { Resources res = context.getResources(); String pkg = context.getPackageName(); - List providers = EmailProvider.loadProfiles(context); + List providers = EmailProvider.getProviders(context); boolean web = BuildConfig.DEBUG; for (EmailProvider provider : providers)