Retry quick setup with local username only

pull/162/head
M66B 6 years ago
parent 2505be0df3
commit 7188719fba

@ -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);

@ -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<EntityFolder> 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)) {
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;

@ -176,6 +176,7 @@
<provider
name="web.de"
keepalive="9"
user="local"
link="https://hilfe.web.de/pop-imap/imap/imap-serverdaten.html">
<imap
host="imap.web.de"

Loading…
Cancel
Save