be more careful to avoid creating multiple connections

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java |  1 
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java            | 10 
2 files changed, 8 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -2578,6 +2578,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
 				}
 				Thread thread = new Thread(connection);
 				connection.setInteractive(interactive);
+				connection.prepareNewConnection();
 				thread.start();
 				scheduleWakeUpCall(Config.CONNECT_DISCO_TIMEOUT, account.getUuid().hashCode());
 			} else {

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java 🔗

@@ -219,12 +219,16 @@ public class XmppConnection implements Runnable {
 		}
 	}
 
+	public void prepareNewConnection() {
+		this.lastConnect = SystemClock.elapsedRealtime();
+		this.lastPingSent = SystemClock.elapsedRealtime();
+		this.lastDiscoStarted = Long.MAX_VALUE;
+		this.changeStatus(Account.State.CONNECTING);
+	}
+
 	protected void connect() {
 		Log.d(Config.LOGTAG, account.getJid().toBareJid().toString() + ": connecting");
 		features.encryptionEnabled = false;
-		lastConnect = SystemClock.elapsedRealtime();
-		lastPingSent = SystemClock.elapsedRealtime();
-		lastDiscoStarted = Long.MAX_VALUE;
 		this.attempt++;
 		switch (account.getJid().getDomainpart()) {
 			case "chat.facebook.com":