don't reset last connect time on network change

This commit is contained in:
Daniel Gultsch 2016-11-18 13:55:02 +01:00
parent a7ee8f8a74
commit 1ed2445c1d
2 changed files with 9 additions and 7 deletions

View file

@ -547,7 +547,7 @@ public class XmppConnectionService extends Service {
switch (action) {
case ConnectivityManager.CONNECTIVITY_ACTION:
if (hasInternetConnection() && Config.RESET_ATTEMPT_COUNT_ON_NETWORK_CHANGE) {
resetAllAttemptCounts(true);
resetAllAttemptCounts(true, false);
}
break;
case ACTION_MERGE_PHONE_CONTACTS:
@ -573,7 +573,7 @@ public class XmppConnectionService extends Service {
dismissErrorNotifications();
break;
case ACTION_TRY_AGAIN:
resetAllAttemptCounts(false);
resetAllAttemptCounts(false, true);
interactive = true;
break;
case ACTION_REPLY_TO_CONVERSATION:
@ -672,7 +672,7 @@ public class XmppConnectionService extends Service {
long timeout = Config.CONNECT_TIMEOUT - secondsSinceLastConnect;
if (timeout < 0) {
Log.d(Config.LOGTAG, account.getJid() + ": time out during connect reconnecting");
account.getXmppConnection().resetAttemptCount();
account.getXmppConnection().resetAttemptCount(false);
reconnectAccount(account, true, interactive);
} else if (discoTimeout < 0) {
account.getXmppConnection().sendDiscoTimeout();
@ -814,13 +814,13 @@ public class XmppConnectionService extends Service {
}
}
private void resetAllAttemptCounts(boolean reallyAll) {
private void resetAllAttemptCounts(boolean reallyAll, boolean retryImmediately) {
Log.d(Config.LOGTAG, "resetting all attempt counts");
for (Account account : accounts) {
if (account.hasErrorStatus() || reallyAll) {
final XmppConnection connection = account.getXmppConnection();
if (connection != null) {
connection.resetAttemptCount();
connection.resetAttemptCount(retryImmediately);
}
}
if (account.setShowErrorNotification(true)) {

View file

@ -1526,10 +1526,12 @@ public class XmppConnection implements Runnable {
this.sendPacket(new InactivePacket());
}
public void resetAttemptCount() {
public void resetAttemptCount(boolean resetConnectTime) {
this.attempt = 0;
if (resetConnectTime) {
this.lastConnect = 0;
}
}
public void setInteractive(boolean interactive) {
this.mInteractive = interactive;