Fixed quick setup

pull/162/head
M66B 6 years ago
parent 5e6e5d2578
commit b2e8e58260

@ -210,37 +210,31 @@ public class EmailProvider {
@NonNull @NonNull
private static EmailProvider fromISPDB(Context context, String domain) throws IOException, XmlPullParserException { private static EmailProvider fromISPDB(Context context, String domain) throws IOException, XmlPullParserException {
EmailProvider provider = new EmailProvider(domain);
// https://wiki.mozilla.org/Thunderbird:Autoconfiguration // https://wiki.mozilla.org/Thunderbird:Autoconfiguration
HttpURLConnection request;
try { try {
URL url = new URL("https://autoconfig." + domain + "/mail/config-v1.1.xml?emailaddress=someone@" + domain); URL url = new URL("https://autoconfig." + domain + "/mail/config-v1.1.xml?emailaddress=someone@" + domain);
Log.i("Fetching " + url); return getISPDB(domain, url);
} catch (Throwable ex) {
Log.w(ex);
}
request = (HttpURLConnection) url.openConnection();
request.setReadTimeout(ISPDB_TIMEOUT);
request.setConnectTimeout(ISPDB_TIMEOUT);
request.setRequestMethod("GET");
request.setDoInput(true);
request.connect();
} catch (IOException ex1) {
try { try {
Log.w(ex1.getMessage());
URL url = new URL("https://" + domain + "/.well-known/autoconfig/mail/config-v1.1.xml"); URL url = new URL("https://" + domain + "/.well-known/autoconfig/mail/config-v1.1.xml");
Log.i("Fetching " + url); return getISPDB(domain, url);
} catch (Throwable ex) {
request = (HttpURLConnection) url.openConnection(); Log.w(ex);
request.setReadTimeout(ISPDB_TIMEOUT); }
request.setConnectTimeout(ISPDB_TIMEOUT);
request.setRequestMethod("GET");
request.setDoInput(true);
request.connect();
} catch (IOException ex2) {
Log.w(ex2.getMessage());
URL url = new URL("https://autoconfig.thunderbird.net/v1.1/" + domain); URL url = new URL("https://autoconfig.thunderbird.net/v1.1/" + domain);
return getISPDB(domain, url);
}
@NonNull
private static EmailProvider getISPDB(String domain, URL url) throws IOException, XmlPullParserException {
EmailProvider provider = new EmailProvider(domain);
HttpURLConnection request = null;
try {
Log.i("Fetching " + url); Log.i("Fetching " + url);
request = (HttpURLConnection) url.openConnection(); request = (HttpURLConnection) url.openConnection();
@ -249,10 +243,7 @@ public class EmailProvider {
request.setRequestMethod("GET"); request.setRequestMethod("GET");
request.setDoInput(true); request.setDoInput(true);
request.connect(); request.connect();
}
}
try {
// https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser // https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xml = factory.newPullParser(); XmlPullParser xml = factory.newPullParser();
@ -408,9 +399,6 @@ public class EmailProvider {
eventType = xml.next(); eventType = xml.next();
} }
} finally {
request.disconnect();
}
Log.i("imap=" + provider.imap.host + ":" + provider.imap.port + ":" + provider.imap.starttls); Log.i("imap=" + provider.imap.host + ":" + provider.imap.port + ":" + provider.imap.starttls);
Log.i("smtp=" + provider.smtp.host + ":" + provider.smtp.port + ":" + provider.smtp.starttls); Log.i("smtp=" + provider.smtp.host + ":" + provider.smtp.port + ":" + provider.smtp.starttls);
@ -418,6 +406,10 @@ public class EmailProvider {
provider.checkValid(); provider.checkValid();
return provider; return provider;
} finally {
if (request != null)
request.disconnect();
}
} }
@NonNull @NonNull

Loading…
Cancel
Save