From 7188719fba97007d781db4ab1128d4101323f702 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 10 Sep 2019 18:15:57 +0200 Subject: [PATCH] Retry quick setup with local username only --- .../main/java/eu/faircode/email/EmailProvider.java | 5 +++++ .../java/eu/faircode/email/FragmentQuickSetup.java | 14 +++++++++++++- app/src/main/res/xml/providers.xml | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/EmailProvider.java b/app/src/main/java/eu/faircode/email/EmailProvider.java index ba06d4f1a7..3a81690858 100644 --- a/app/src/main/java/eu/faircode/email/EmailProvider.java +++ b/app/src/main/java/eu/faircode/email/EmailProvider.java @@ -105,6 +105,11 @@ public class EmailProvider { provider.keepalive = xml.getAttributeIntValue(null, "keepalive", 0); provider.link = xml.getAttributeValue(null, "link"); provider.type = xml.getAttributeValue(null, "type"); + String user = xml.getAttributeValue(null, "user"); + if ("local".equals(user)) + provider.user = UserType.LOCAL; + else if ("email".equals(user)) + provider.user = UserType.EMAIL; } else if ("imap".equals(name)) { provider.imap.host = xml.getAttributeValue(null, "host"); provider.imap.port = xml.getAttributeIntValue(null, "port", 0); diff --git a/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java b/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java index 476bfb782c..76b4ea1e7e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentQuickSetup.java @@ -57,6 +57,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import javax.mail.AuthenticationFailedException; import javax.mail.Folder; import static android.app.Activity.RESULT_OK; @@ -254,6 +255,7 @@ public class FragmentQuickSetup extends FragmentBase { args.putString("documentation", provider.documentation.toString()); String user = (provider.user == EmailProvider.UserType.EMAIL ? email : dparts[0]); + Log.i("User type=" + provider.user + " name=" + user); List folders = new ArrayList<>(); long now = new Date().getTime(); @@ -261,7 +263,17 @@ public class FragmentQuickSetup extends FragmentBase { { String protocol = provider.imap.starttls ? "imap" : "imaps"; try (MailService iservice = new MailService(context, protocol, null, false, true)) { - iservice.connect(provider.imap.host, provider.imap.port, user, password); + try { + iservice.connect(provider.imap.host, provider.imap.port, user, password); + } catch (AuthenticationFailedException ex) { + if (user.contains("@")) { + Log.w(ex); + user = dparts[0]; + Log.i("Retry with user=" + user); + iservice.connect(provider.imap.host, provider.imap.port, user, password); + } else + throw ex; + } boolean inbox = false; boolean drafts = false; diff --git a/app/src/main/res/xml/providers.xml b/app/src/main/res/xml/providers.xml index adaf7b188d..2255fc353e 100644 --- a/app/src/main/res/xml/providers.xml +++ b/app/src/main/res/xml/providers.xml @@ -176,6 +176,7 @@