diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-08-28 22:23:18 +0200 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-08-30 09:22:05 +0200 |
commit | 6d82a69ba367cc2efd34de3b22d1a76b0f583d95 (patch) | |
tree | 9d8140fd17060e9d9ca987e0c46e1a91b78c686c | |
parent | 265bd062500dcd9524a0a5f70acf88350266ac26 (diff) |
send inactive or active on every connect and resume
-rw-r--r-- | src/eu/siacs/conversations/services/XmppConnectionService.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index ccf703fc..438fff5f 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -146,6 +146,7 @@ public class XmppConnectionService extends Service { @Override public void onStatusChanged(Account account) { + XmppConnection connection = account.getXmppConnection(); if (mOnAccountUpdate != null) { mOnAccountUpdate.onAccountUpdate();; } @@ -164,6 +165,15 @@ public class XmppConnectionService extends Service { sendUnsendMessages(conversations.get(i)); } } + if (connection!=null && connection.getFeatures().csi()) { + if (checkListeners()) { + Log.d(LOGTAG,account.getJid() + " sending csi//inactive"); + connection.sendInactive(); + } else { + Log.d(LOGTAG,account.getJid() + " sending csi//active"); + connection.sendActive(); + } + } syncDirtyContacts(account); scheduleWakeupCall(PING_MAX_INTERVAL, true); } else if (account.getStatus() == Account.STATUS_OFFLINE) { @@ -177,7 +187,6 @@ public class XmppConnectionService extends Service { reconnectAccount(account, true); } else if ((account.getStatus() != Account.STATUS_CONNECTING) && (account.getStatus() != Account.STATUS_NO_INTERNET)) { - XmppConnection connection = account.getXmppConnection(); if (connection!=null) { int next = connection.getTimeToNextAttempt(); Log.d(LOGTAG, account.getJid() @@ -965,7 +974,6 @@ public class XmppConnectionService extends Service { } private void switchToForeground() { - Log.d(LOGTAG,"going into foreground"); for(Account account : getAccounts()) { if (account.getStatus() == Account.STATUS_ONLINE) { XmppConnection connection = account.getXmppConnection(); @@ -978,7 +986,6 @@ public class XmppConnectionService extends Service { } private void switchToBackground() { - Log.d(LOGTAG,"going into background"); for(Account account : getAccounts()) { if (account.getStatus() == Account.STATUS_ONLINE) { XmppConnection connection = account.getXmppConnection(); |