Refactoring

This commit is contained in:
M66B
2020-03-24 11:29:01 +01:00
parent 26fba327fd
commit 4197e27ef9
2 changed files with 27 additions and 27 deletions

View File

@@ -1,5 +1,6 @@
package eu.faircode.email;
import android.accounts.AccountsException;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
@@ -14,12 +15,15 @@ import android.telephony.TelephonyManager;
import androidx.annotation.Nullable;
import androidx.preference.PreferenceManager;
import com.sun.mail.iap.ConnectionException;
import org.xbill.DNS.Lookup;
import org.xbill.DNS.MXRecord;
import org.xbill.DNS.Record;
import org.xbill.DNS.SimpleResolver;
import org.xbill.DNS.Type;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;
@@ -277,6 +281,27 @@ public class ConnectionHelper {
return true;
}
static boolean isIoError(Throwable ex) {
while (ex != null) {
if (isMaxConnections(ex.getMessage()) ||
ex instanceof IOException ||
ex instanceof ConnectionException ||
ex instanceof AccountsException ||
"failed to connect".equals(ex.getMessage()))
return true;
ex = ex.getCause();
}
return false;
}
static boolean isMaxConnections(String message) {
return (message != null &&
(message.contains("Too many simultaneous connections") /* Gmail */ ||
message.contains("Maximum number of connections") /* ... from user+IP exceeded */ /* Dovecot */ ||
message.contains("Too many concurrent connections") /* ... to this mailbox */ ||
message.contains("User is authenticated but not connected") /* Outlook */));
}
static boolean vpnActive(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null)