summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/ProviderAPICommand.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderAPICommand.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/ProviderAPICommand.java68
1 files changed, 51 insertions, 17 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderAPICommand.java b/app/src/main/java/se/leap/bitmaskclient/ProviderAPICommand.java
index 0e4cfe8a..65d01b22 100644
--- a/app/src/main/java/se/leap/bitmaskclient/ProviderAPICommand.java
+++ b/app/src/main/java/se/leap/bitmaskclient/ProviderAPICommand.java
@@ -6,40 +6,74 @@ import android.os.*;
import org.jetbrains.annotations.*;
public class ProviderAPICommand {
- private static Context context;
+ private Context context;
- private static String action;
- private static Bundle parameters;
- private static ResultReceiver result_receiver;
+ private String action;
+ private Bundle parameters;
+ private ResultReceiver resultReceiver;
+ private Provider provider;
- public static void initialize(Context context) {
- ProviderAPICommand.context = context;
+ private ProviderAPICommand(@NotNull Context context, @NotNull String action, @NotNull Provider provider, ResultReceiver resultReceiver) {
+ this(context, action, Bundle.EMPTY, provider, resultReceiver);
+ }
+ private ProviderAPICommand(@NotNull Context context, @NotNull String action, @NotNull Provider provider) {
+ this(context, action, Bundle.EMPTY, provider);
}
- private static boolean isInitialized() {
- return context != null;
+ private ProviderAPICommand(@NotNull Context context, @NotNull String action, @NotNull Bundle parameters, @NotNull Provider provider) {
+ this(context, action, parameters, provider, null);
}
- public static void execute(Bundle parameters, @NotNull String action, @NotNull ResultReceiver result_receiver) throws IllegalStateException {
- if(!isInitialized()) throw new IllegalStateException();
+ private ProviderAPICommand(@NotNull Context context, @NotNull String action, @NotNull Bundle parameters, @NotNull Provider provider, @Nullable ResultReceiver resultReceiver) {
+ super();
+ this.context = context;
+ this.action = action;
+ this.parameters = parameters;
+ this.resultReceiver = resultReceiver;
+ this.provider = provider;
+ }
- ProviderAPICommand.action = action;
- ProviderAPICommand.parameters = parameters;
- ProviderAPICommand.result_receiver = result_receiver;
+ private boolean isInitialized() {
+ return context != null;
+ }
- Intent intent = setUpIntent();
- context.startService(intent);
+ private void execute() {
+ if (isInitialized()) {
+ Intent intent = setUpIntent();
+ context.startService(intent);
+ }
}
- private static Intent setUpIntent() {
+ private Intent setUpIntent() {
Intent command = new Intent(context, ProviderAPI.class);
command.setAction(action);
command.putExtra(ProviderAPI.PARAMETERS, parameters);
- command.putExtra(ProviderAPI.RECEIVER_KEY, result_receiver);
+ if (resultReceiver != null) {
+ command.putExtra(ProviderAPI.RECEIVER_KEY, resultReceiver);
+ }
+ command.putExtra(Constants.PROVIDER_KEY, provider);
return command;
}
+ public static void execute(Context context, String action, Provider provider) {
+ ProviderAPICommand command = new ProviderAPICommand(context, action, provider);
+ command.execute();
+ }
+ public static void execute(Context context, String action, Bundle parameters, Provider provider) {
+ ProviderAPICommand command = new ProviderAPICommand(context, action, parameters, provider);
+ command.execute();
+ }
+
+ public static void execute(Context context, String action, Bundle parameters, Provider provider, ResultReceiver resultReceiver) {
+ ProviderAPICommand command = new ProviderAPICommand(context, action, parameters, provider, resultReceiver);
+ command.execute();
+ }
+
+ public static void execute(Context context, String action, Provider provider, ResultReceiver resultReceiver) {
+ ProviderAPICommand command = new ProviderAPICommand(context, action, provider, resultReceiver);
+ command.execute();
+ }
}