aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-08-28 22:23:18 +0200
committeriNPUTmice <daniel@gultsch.de>2014-08-30 09:22:05 +0200
commit6d82a69ba367cc2efd34de3b22d1a76b0f583d95 (patch)
tree9d8140fd17060e9d9ca987e0c46e1a91b78c686c
parent265bd062500dcd9524a0a5f70acf88350266ac26 (diff)
send inactive or active on every connect and resume
-rw-r--r--src/eu/siacs/conversations/services/XmppConnectionService.java13
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();