@Override public void connectionLost(Throwable reason) { Log.d(TAG, "Connection Lost"); SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); if (isConnecting || isStopping) { return; } if (!isOnline()) { stopReconnect(df); return; } if (reason != null) { if (reason.getMessage().contains("There was a problem during connect")) { Log.e(TAG, "connection lost", reason); return; } else if (reason.getMessage().contains("Closed due to user request")) { Log.e(TAG, "connection lost", reason); return; } else if (reason.getMessage().contains("The connect timeout expired")) { stopReconnect(df); return; } Log.e(TAG, "connection lost: " + reason.getMessage()); } else { stopReconnect(df); return; } if (profile.isAutoReconnect() && connected) { for (int reconNum = 1; reconNum <= RECONNECT_TRIES; reconNum++) { Log.d(TAG, "Reconnect tries: " + reconNum); onDisconnect(); if (!connect()) { try { Thread.sleep(2000 * reconNum); } catch (Exception ignore) { // Nothing } continue; } notifyAlert( getString(R.string.reconnect_success) + " " + df.format(new Date()), getString(R.string.reconnect_success)); return; } } stopReconnect(df); }