From ae2ee6ef16f48518d09cc1ec52c852205d785af7 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Fri, 6 Oct 2017 22:39:02 +0200 Subject: EventReceiver: use setting to store enabled accounts --- .../java/de/pixart/messenger/services/EventReceiver.java | 15 +++++++++++++-- .../pixart/messenger/services/XmppConnectionService.java | 6 ++++++ 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/pixart/messenger/services') diff --git a/src/main/java/de/pixart/messenger/services/EventReceiver.java b/src/main/java/de/pixart/messenger/services/EventReceiver.java index 615bc98b3..cdd1afe19 100644 --- a/src/main/java/de/pixart/messenger/services/EventReceiver.java +++ b/src/main/java/de/pixart/messenger/services/EventReceiver.java @@ -3,10 +3,15 @@ package de.pixart.messenger.services; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.preference.PreferenceManager; +import android.util.Log; -import de.pixart.messenger.persistance.DatabaseBackend; +import de.pixart.messenger.Config; public class EventReceiver extends BroadcastReceiver { + + public static final String SETTING_ENABLED_ACCOUNTS = "enabled_accounts"; + @Override public void onReceive(Context context, Intent intent) { Intent mIntentForService = new Intent(context, XmppConnectionService.class); @@ -16,9 +21,15 @@ public class EventReceiver extends BroadcastReceiver { mIntentForService.setAction("other"); } final String action = intent.getAction(); - if (action.equals("ui") || DatabaseBackend.getInstance(context).hasEnabledAccounts()) { + if (action.equals("ui") || hasEnabledAccounts(context)) { context.startService(mIntentForService); + } else { + Log.d(Config.LOGTAG, "EventReceiver ignored action " + mIntentForService.getAction()); } } + public boolean hasEnabledAccounts(Context context) { + return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SETTING_ENABLED_ACCOUNTS, true); + } + } diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index 519cec043..ae22d205e 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -1922,9 +1922,14 @@ public class XmppConnectionService extends Service { this.accounts.add(account); this.reconnectAccountInBackground(account); updateAccountUi(); + syncEnabledAccountSetting(); toggleForegroundService(); } + private void syncEnabledAccountSetting() { + getPreferences().edit().putBoolean(EventReceiver.SETTING_ENABLED_ACCOUNTS, hasEnabledAccounts()).apply(); + } + public void createAccountFromKey(final String alias, final OnAccountCreated callback) { new Thread(new Runnable() { @Override @@ -1997,6 +2002,7 @@ public class XmppConnectionService extends Service { updateAccountUi(); getNotificationService().updateErrorNotification(); toggleForegroundService(); + syncEnabledAccountSetting(); return true; } else { return false; -- cgit v1.2.3