@@ -129,6 +129,12 @@ public void connect() {
129129
130130 public void disconnect () {
131131 Log .d (LOGTAG , "disconnect()..." );
132+ if (sharedPrefs .contains (Constants .XMPP_LOGGEDIN )) {
133+ Editor editor = sharedPrefs .edit ();
134+ editor .remove (Constants .XMPP_LOGGEDIN );
135+ editor .remove (Constants .XMPP_REGISTERED );
136+ editor .apply ();
137+ }
132138 terminatePersistentConnection ();
133139 }
134140
@@ -285,6 +291,7 @@ private void addTask(Runnable runnable) {
285291 private void removeAccount () {
286292 Editor editor = sharedPrefs .edit ();
287293 editor .remove (Constants .XMPP_REGISTERED );
294+ editor .remove (Constants .XMPP_LOGGEDIN );
288295 editor .apply ();
289296 }
290297
@@ -391,7 +398,7 @@ public void processPacket(Packet packet) {
391398 Log .d (LOGTAG , "password=" + newPassword );
392399
393400 Editor editor = sharedPrefs .edit ();
394- editor .putBoolean (Constants .XMPP_REGISTERED , true );
401+ editor .putString (Constants .XMPP_REGISTERED , " true" );
395402 editor .remove (Constants .XMPP_USERNAME );
396403 editor .remove (Constants .XMPP_PASSWORD );
397404 editor .putString (Constants .XMPP_USERNAME ,
@@ -457,6 +464,9 @@ public void run() {
457464 xmppManager .getConnection ().login (
458465 xmppManager .getUsername (),
459466 xmppManager .getPassword (), XMPP_RESOURCE_NAME );
467+ Editor editor = sharedPrefs .edit ();
468+ editor .putString (Constants .XMPP_LOGGEDIN , "true" );
469+ editor .apply ();
460470 Log .d (LOGTAG , "Loggedn in successfully" );
461471
462472 // connection listener
@@ -497,6 +507,11 @@ public void run() {
497507 }
498508
499509 } else {
510+ if (!(sharedPrefs .contains (Constants .XMPP_LOGGEDIN ))) {
511+ Editor editor = sharedPrefs .edit ();
512+ editor .putString (Constants .XMPP_LOGGEDIN , "true" );
513+ editor .apply ();
514+ }
500515 Log .i (LOGTAG , "Logged in already" );
501516 xmppManager .runTask ();
502517 }
0 commit comments