Prefer ISPDB with username

pull/212/head
M66B 3 years ago
parent 34d577755e
commit 9dbd02bdc6

@ -382,11 +382,10 @@ public class EmailProvider implements Parcelable {
} }
@NonNull @NonNull
static List<EmailProvider> fromEmail(Context context, String email, Discover discover, IDiscovery intf) throws IOException { static List<EmailProvider> fromEmail(Context context, String _email, Discover discover, IDiscovery intf) throws IOException {
int at = email.indexOf('@'); int at = _email.indexOf('@');
String domain = (at < 0 ? email : email.substring(at + 1)); String domain = (at < 0 ? _email : _email.substring(at + 1));
if (at < 0) String email = (at < 0 ? "someone@" + domain : _email);
email = "someone@" + domain;
if (TextUtils.isEmpty(domain)) if (TextUtils.isEmpty(domain))
throw new UnknownHostException(context.getString(R.string.title_setup_no_settings, domain)); throw new UnknownHostException(context.getString(R.string.title_setup_no_settings, domain));
@ -560,16 +559,17 @@ public class EmailProvider implements Parcelable {
Collections.sort(candidates, new Comparator<EmailProvider>() { Collections.sort(candidates, new Comparator<EmailProvider>() {
@Override @Override
public int compare(EmailProvider p1, EmailProvider p2) { public int compare(EmailProvider p1, EmailProvider p2) {
return -Integer.compare(p1.getScore(), p2.getScore()); return -Integer.compare(p1.getScore(email), p2.getScore(email));
} }
}); });
// Log candidates // Log candidates
for (EmailProvider candidate : candidates) for (EmailProvider candidate : candidates)
EntityLog.log(context, "Candidate" + EntityLog.log(context, "Candidate" +
" score=" + candidate.getScore() + " score=" + candidate.getScore(email) +
" imap=" + candidate.imap + " imap=" + candidate.imap +
" smtp=" + candidate.smtp); " smtp=" + candidate.smtp +
" user=" + candidate.username);
// Remove duplicates // Remove duplicates
List<EmailProvider> result = new ArrayList<>(); List<EmailProvider> result = new ArrayList<>();
@ -1059,10 +1059,11 @@ public class EmailProvider implements Parcelable {
} }
}; };
private int getScore() { private int getScore(String email) {
if (imap == null || smtp == null) if (imap == null || smtp == null)
return -1; return -1;
return imap.score + smtp.score; return imap.score + smtp.score +
(TextUtils.isEmpty(username) || username.equalsIgnoreCase(email) ? 0 : 100);
} }
@Override @Override
@ -1097,6 +1098,7 @@ public class EmailProvider implements Parcelable {
// +2 trusted host // +2 trusted host
// +1 trusted DNS name // +1 trusted DNS name
// 20 from autoconfig // 20 from autoconfig
// +100 with username
// 50 from DNS // 50 from DNS
// 100 from profile // 100 from profile

Loading…
Cancel
Save