Filter providers

pull/210/head
M66B 2 years ago
parent b00b9a091b
commit 009551c540

@ -177,7 +177,7 @@ public class EmailProvider implements Parcelable {
return result; return result;
} }
static List<EmailProvider> loadProfiles(Context context) { private static List<EmailProvider> loadProfiles(Context context) {
List<EmailProvider> result = null; List<EmailProvider> result = null;
try { try {
@ -297,7 +297,7 @@ public class EmailProvider implements Parcelable {
} else } else
throw new IllegalAccessException(name); throw new IllegalAccessException(name);
} else if (eventType == XmlPullParser.END_TAG) { } else if (eventType == XmlPullParser.END_TAG) {
if ("provider".equals(xml.getName()) && provider.enabled) { if ("provider".equals(xml.getName())) {
result.add(provider); result.add(provider);
provider = null; provider = null;
} }
@ -312,12 +312,12 @@ public class EmailProvider implements Parcelable {
return result; 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); String value = parser.getAttributeValue(null, name);
return (value == null ? defaultValue : Boolean.parseBoolean(value)); 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); String value = parser.getAttributeValue(null, name);
return (value == null ? defaultValue : Integer.parseInt(value)); return (value == null ? defaultValue : Integer.parseInt(value));
} }
@ -331,6 +331,14 @@ public class EmailProvider implements Parcelable {
throw new FileNotFoundException("provider id=" + id); throw new FileNotFoundException("provider id=" + id);
} }
static List<EmailProvider> getProviders(Context context) {
List<EmailProvider> result = new ArrayList<>();
for (EmailProvider provider : loadProfiles(context))
if (provider.enabled)
result.add(provider);
return result;
}
@NonNull @NonNull
static List<EmailProvider> fromDomain(Context context, String domain, Discover discover) throws IOException { static List<EmailProvider> fromDomain(Context context, String domain, Discover discover) throws IOException {
return fromEmail(context, domain, discover); return fromEmail(context, domain, discover);

@ -360,7 +360,7 @@ public class EntityAnswer implements Serializable {
if (compose && BuildConfig.DEBUG) { if (compose && BuildConfig.DEBUG) {
SubMenu profiles = main.addSubMenu(Menu.NONE, order, order++, "Profiles"); 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(); SpannableStringBuilder ssb = new SpannableStringBuilderEx();
int start; int start;
ssb.append("IMAP (account, receive)"); ssb.append("IMAP (account, receive)");

@ -1555,7 +1555,7 @@ public class FragmentAccount extends FragmentBase {
protected void onExecuted(Bundle args, final EntityAccount account) { protected void onExecuted(Bundle args, final EntityAccount account) {
// Get providers // Get providers
final Context context = getContext(); final Context context = getContext();
List<EmailProvider> providers = EmailProvider.loadProfiles(context); List<EmailProvider> providers = EmailProvider.getProviders(context);
providers.add(0, new EmailProvider(getString(R.string.title_select))); providers.add(0, new EmailProvider(getString(R.string.title_select)));
providers.add(1, new EmailProvider(getString(R.string.title_custom))); providers.add(1, new EmailProvider(getString(R.string.title_custom)));

@ -1280,7 +1280,7 @@ public class FragmentIdentity extends FragmentBase {
cbEncryptDefault.setEnabled(!encrypt_default); cbEncryptDefault.setEnabled(!encrypt_default);
// Get providers // Get providers
List<EmailProvider> providers = EmailProvider.loadProfiles(getContext()); List<EmailProvider> providers = EmailProvider.getProviders(getContext());
providers.add(0, new EmailProvider(getString(R.string.title_custom))); providers.add(0, new EmailProvider(getString(R.string.title_custom)));
ArrayAdapter<EmailProvider> aaProfile = ArrayAdapter<EmailProvider> aaProfile =

@ -282,7 +282,7 @@ public class FragmentSetup extends FragmentBase {
Resources res = context.getResources(); Resources res = context.getResources();
String pkg = context.getPackageName(); String pkg = context.getPackageName();
List<EmailProvider> providers = EmailProvider.loadProfiles(context); List<EmailProvider> providers = EmailProvider.getProviders(context);
boolean web = BuildConfig.DEBUG; boolean web = BuildConfig.DEBUG;
for (EmailProvider provider : providers) for (EmailProvider provider : providers)

Loading…
Cancel
Save