removed unnecessary call to stopSelf() after logging out

This commit is contained in:
Daniel Gultsch 2016-04-14 21:45:36 +02:00
parent 72aa10b536
commit eb63cdb9ad

View File

@ -509,7 +509,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
} }
return START_STICKY; return START_STICKY;
case Intent.ACTION_SHUTDOWN: case Intent.ACTION_SHUTDOWN:
logoutAndSave(); logoutAndSave(true);
return START_NOT_STICKY; return START_NOT_STICKY;
case ACTION_CLEAR_NOTIFICATION: case ACTION_CLEAR_NOTIFICATION:
mNotificationService.clear(); mNotificationService.clear();
@ -787,12 +787,16 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
public void onTaskRemoved(final Intent rootIntent) { public void onTaskRemoved(final Intent rootIntent) {
super.onTaskRemoved(rootIntent); super.onTaskRemoved(rootIntent);
if (!getPreferences().getBoolean("keep_foreground_service", false)) { if (!getPreferences().getBoolean("keep_foreground_service", false)) {
this.logoutAndSave(); this.logoutAndSave(false);
} }
} }
private void logoutAndSave() { private void logoutAndSave(boolean stop) {
int activeAccounts = 0;
for (final Account account : accounts) { for (final Account account : accounts) {
if (account.getStatus() != Account.State.DISABLED) {
activeAccounts++;
}
databaseBackend.writeRoster(account.getRoster()); databaseBackend.writeRoster(account.getRoster());
if (account.getXmppConnection() != null) { if (account.getXmppConnection() != null) {
new Thread(new Runnable() { new Thread(new Runnable() {
@ -803,9 +807,11 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
}).start(); }).start();
} }
} }
if (stop || activeAccounts == 0) {
Log.d(Config.LOGTAG, "good bye"); Log.d(Config.LOGTAG, "good bye");
stopSelf(); stopSelf();
} }
}
private void cancelWakeUpCall(int requestCode) { private void cancelWakeUpCall(int requestCode) {
final AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); final AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);