send inactive or active on every connect and resume

This commit is contained in:
iNPUTmice 2014-08-28 22:23:18 +02:00
parent 265bd06250
commit 6d82a69ba3

View file

@ -146,6 +146,7 @@ public class XmppConnectionService extends Service {
@Override @Override
public void onStatusChanged(Account account) { public void onStatusChanged(Account account) {
XmppConnection connection = account.getXmppConnection();
if (mOnAccountUpdate != null) { if (mOnAccountUpdate != null) {
mOnAccountUpdate.onAccountUpdate();; mOnAccountUpdate.onAccountUpdate();;
} }
@ -164,6 +165,15 @@ public class XmppConnectionService extends Service {
sendUnsendMessages(conversations.get(i)); 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); syncDirtyContacts(account);
scheduleWakeupCall(PING_MAX_INTERVAL, true); scheduleWakeupCall(PING_MAX_INTERVAL, true);
} else if (account.getStatus() == Account.STATUS_OFFLINE) { } else if (account.getStatus() == Account.STATUS_OFFLINE) {
@ -177,7 +187,6 @@ public class XmppConnectionService extends Service {
reconnectAccount(account, true); reconnectAccount(account, true);
} else if ((account.getStatus() != Account.STATUS_CONNECTING) } else if ((account.getStatus() != Account.STATUS_CONNECTING)
&& (account.getStatus() != Account.STATUS_NO_INTERNET)) { && (account.getStatus() != Account.STATUS_NO_INTERNET)) {
XmppConnection connection = account.getXmppConnection();
if (connection!=null) { if (connection!=null) {
int next = connection.getTimeToNextAttempt(); int next = connection.getTimeToNextAttempt();
Log.d(LOGTAG, account.getJid() Log.d(LOGTAG, account.getJid()
@ -965,7 +974,6 @@ public class XmppConnectionService extends Service {
} }
private void switchToForeground() { private void switchToForeground() {
Log.d(LOGTAG,"going into foreground");
for(Account account : getAccounts()) { for(Account account : getAccounts()) {
if (account.getStatus() == Account.STATUS_ONLINE) { if (account.getStatus() == Account.STATUS_ONLINE) {
XmppConnection connection = account.getXmppConnection(); XmppConnection connection = account.getXmppConnection();
@ -978,7 +986,6 @@ public class XmppConnectionService extends Service {
} }
private void switchToBackground() { private void switchToBackground() {
Log.d(LOGTAG,"going into background");
for(Account account : getAccounts()) { for(Account account : getAccounts()) {
if (account.getStatus() == Account.STATUS_ONLINE) { if (account.getStatus() == Account.STATUS_ONLINE) {
XmppConnection connection = account.getXmppConnection(); XmppConnection connection = account.getXmppConnection();