EventReceiver.java

 1package eu.siacs.conversations.services;
 2
 3import android.content.BroadcastReceiver;
 4import android.content.Context;
 5import android.content.Intent;
 6import android.preference.PreferenceManager;
 7import android.support.v4.content.ContextCompat;
 8import android.util.Log;
 9
10import eu.siacs.conversations.Config;
11import eu.siacs.conversations.utils.Compatibility;
12
13public class EventReceiver extends BroadcastReceiver {
14
15    public static final String SETTING_ENABLED_ACCOUNTS = "enabled_accounts";
16    public static final String EXTRA_NEEDS_FOREGROUND_SERVICE = "needs_foreground_service";
17
18    @Override
19    public void onReceive(final Context context, final Intent originalIntent) {
20        final Intent intentForService = new Intent(context, XmppConnectionService.class);
21        if (originalIntent.getAction() != null) {
22            intentForService.setAction(originalIntent.getAction());
23        } else {
24            intentForService.setAction("other");
25        }
26        final String action = originalIntent.getAction();
27        if (action.equals("ui") || hasEnabledAccounts(context)) {
28            Compatibility.startService(context, intentForService);
29        } else {
30            Log.d(Config.LOGTAG, "EventReceiver ignored action " + intentForService.getAction());
31        }
32    }
33
34    public static boolean hasEnabledAccounts(final Context context) {
35        return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SETTING_ENABLED_ACCOUNTS, true);
36    }
37
38}