package com.huawei.hms.framework.common; import android.text.TextUtils; import java.io.IOException; import java.io.InterruptedIOException; import java.net.ConnectException; import java.net.NoRouteToHostException; import java.net.ProtocolException; import java.net.SocketTimeoutException; import java.net.UnknownHostException; import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.SSLPeerUnverifiedException; import javax.net.ssl.SSLProtocolException; /* loaded from: classes2.dex */ public class ExceptionCode { public static final int CANCEL = 10000100; private static final String CONNECT = "connect"; public static final int CONNECTION_ABORT = 10000402; public static final int CONNECTION_REFUSED = 10000404; public static final int CONNECTION_RESET = 10000401; public static final int CONNECT_FAILED = 10000403; public static final int CRASH_EXCEPTION = 10000000; public static final int INTERRUPT_CONNECT_CLOSE = 10000405; public static final int INTERRUPT_EXCEPTION = 10000804; public static final int NETWORK_CHANGED = 10000201; public static final int NETWORK_IO_EXCEPTION = 10000802; public static final int NETWORK_TIMEOUT = 10000101; public static final int NETWORK_UNREACHABLE = 10000200; public static final int NETWORK_UNSUPPORTED = 10000102; public static final int PROTOCOL_ERROR = 10000801; private static final String READ = "read"; public static final int READ_ERROR = 10000601; public static final int ROUTE_FAILED = 10000301; public static final int SHUTDOWN_EXCEPTION = 10000202; public static final int SOCKET_CLOSE = 10000406; public static final int SOCKET_CONNECT_TIMEOUT = 10000400; public static final int SOCKET_READ_TIMEOUT = 10000600; public static final int SOCKET_TIMEOUT = 10000803; public static final int SOCKET_WRITE_TIMEOUT = 10000700; public static final int SSL_HANDSHAKE_EXCEPTION = 10000501; public static final int SSL_PEERUNVERIFIED_EXCEPTION = 10000502; public static final int SSL_PROTOCOL_EXCEPTION = 10000500; public static final int UNABLE_TO_RESOLVE_HOST = 10000300; public static final int UNEXPECTED_EOF = 10000800; private static final String WRITE = "write"; public static int getErrorCodeFromException(Exception exc) { if (exc == null) { return NETWORK_IO_EXCEPTION; } if (!(exc instanceof IOException)) { return CRASH_EXCEPTION; } String message = exc.getMessage(); if (message == null) { return NETWORK_IO_EXCEPTION; } String lowerCase = StringUtils.toLowerCase(message); int errorCodeFromMsg = getErrorCodeFromMsg(lowerCase); if (errorCodeFromMsg != 10000802) { return errorCodeFromMsg; } if (exc instanceof SocketTimeoutException) { return getErrorCodeSocketTimeout(exc); } return exc instanceof ConnectException ? CONNECT_FAILED : exc instanceof NoRouteToHostException ? ROUTE_FAILED : exc instanceof SSLProtocolException ? SSL_PROTOCOL_EXCEPTION : exc instanceof SSLHandshakeException ? SSL_HANDSHAKE_EXCEPTION : exc instanceof SSLPeerUnverifiedException ? SSL_PEERUNVERIFIED_EXCEPTION : exc instanceof UnknownHostException ? UNABLE_TO_RESOLVE_HOST : exc instanceof InterruptedIOException ? lowerCase.contains("connection has been shut down") ? INTERRUPT_CONNECT_CLOSE : INTERRUPT_EXCEPTION : exc instanceof ProtocolException ? PROTOCOL_ERROR : errorCodeFromMsg; } private static int getErrorCodeSocketTimeout(Exception exc) { char c; String checkExceptionContainsKey = checkExceptionContainsKey(exc, CONNECT, READ, WRITE); checkExceptionContainsKey.hashCode(); int hashCode = checkExceptionContainsKey.hashCode(); if (hashCode == 3496342) { if (checkExceptionContainsKey.equals(READ)) { c = 0; } c = 65535; } else if (hashCode != 113399775) { if (hashCode == 951351530 && checkExceptionContainsKey.equals(CONNECT)) { c = 2; } c = 65535; } else { if (checkExceptionContainsKey.equals(WRITE)) { c = 1; } c = 65535; } return c != 0 ? c != 1 ? c != 2 ? SOCKET_TIMEOUT : SOCKET_CONNECT_TIMEOUT : SOCKET_WRITE_TIMEOUT : SOCKET_READ_TIMEOUT; } private static int getErrorCodeFromMsg(String str) { return str.contains("unexpected end of stream") ? UNEXPECTED_EOF : str.contains("unable to resolve host") ? UNABLE_TO_RESOLVE_HOST : str.contains("read error") ? READ_ERROR : str.contains("connection reset") ? CONNECTION_RESET : str.contains("software caused connection abort") ? CONNECTION_ABORT : str.contains("failed to connect to") ? CONNECT_FAILED : str.contains("connection refused") ? CONNECTION_REFUSED : str.contains("connection timed out") ? SOCKET_CONNECT_TIMEOUT : str.contains("no route to host") ? ROUTE_FAILED : str.contains("network is unreachable") ? NETWORK_UNREACHABLE : str.contains("socket closed") ? SOCKET_CLOSE : NETWORK_IO_EXCEPTION; } private static String checkExceptionContainsKey(Exception exc, String... strArr) { return checkStrContainsKey(StringUtils.toLowerCase(exc.getMessage()), strArr); } private static String checkStrContainsKey(String str, String... strArr) { if (TextUtils.isEmpty(str)) { return ""; } for (String str2 : strArr) { if (str.contains(str2)) { return str2; } } return ""; } }