1package eu.siacs.conversations.services;
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.utils.Compatibility;
14
15public class EventReceiver extends BroadcastReceiver {
16
17 public static final String SETTING_ENABLED_ACCOUNTS = "enabled_accounts";
18 public static final String EXTRA_NEEDS_FOREGROUND_SERVICE = "needs_foreground_service";
19
20 @Override
21 public void onReceive(final Context context, final Intent originalIntent) {
22 final Intent intentForService = new Intent(context, XmppConnectionService.class);
23 final String action = originalIntent.getAction();
24 intentForService.setAction(Strings.isNullOrEmpty(action) ? "other" : action);
25 final Bundle extras = originalIntent.getExtras();
26 if (extras != null) {
27 intentForService.putExtras(extras);
28 }
29 if ("ui".equals(action) || hasEnabledAccounts(context)) {
30 Compatibility.startService(context, intentForService);
31 } else {
32 Log.d(Config.LOGTAG, "EventReceiver ignored action " + intentForService.getAction());
33 }
34 }
35
36 public static boolean hasEnabledAccounts(final Context context) {
37 return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SETTING_ENABLED_ACCOUNTS, true);
38 }
39
40}