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