summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2022-07-18 18:46:46 +0200
committercyBerta <cyberta@riseup.net>2022-07-18 18:46:46 +0200
commit512030e22fda6eadb69d4f486241490670d7bab1 (patch)
tree9e8047717ddc5b4239ae7bb882a57faaa380f14c
parent958c93974d5fd81e882e61bd30fa13ac89868106 (diff)
implement small delay to check for version updates after a successful connection setup
-rw-r--r--app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadServiceCommand.java29
-rw-r--r--app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/UpdateDownloadManager.java11
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java4
3 files changed, 38 insertions, 6 deletions
diff --git a/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadServiceCommand.java b/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadServiceCommand.java
index 4e0d9079..41efd621 100644
--- a/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadServiceCommand.java
+++ b/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/DownloadServiceCommand.java
@@ -18,6 +18,7 @@ package se.leap.bitmaskclient.appUpdate;
import android.content.Context;
import android.content.Intent;
+import android.os.Bundle;
import android.os.ResultReceiver;
import androidx.annotation.NonNull;
@@ -31,18 +32,27 @@ public class DownloadServiceCommand {
CHECK_VERSION_FILE = "checkVersionFile",
DOWNLOAD_UPDATE = "downloadUpdate";
- private Context context;
- private String action;
- private ResultReceiver resultReceiver;
+ private final Context context;
+ private final String action;
+ private Bundle parameters;
+ private final ResultReceiver resultReceiver;
private DownloadServiceCommand(@NonNull Context context, @NonNull String action) {
- this(context.getApplicationContext(), action, null);
+ this(context.getApplicationContext(), action, null, null);
}
+ private DownloadServiceCommand(@NonNull Context context, @NonNull String action, @Nullable Bundle parameters) {
+ this(context.getApplicationContext(), action, parameters, null);
+ }
private DownloadServiceCommand(@NonNull Context context, @NonNull String action, @Nullable ResultReceiver resultReceiver) {
+ this(context.getApplicationContext(), action, null, resultReceiver);
+ }
+
+ private DownloadServiceCommand(@NonNull Context context, @NonNull String action, @Nullable Bundle parameters, @Nullable ResultReceiver resultReceiver) {
super();
this.context = context;
this.action = action;
+ this.parameters = parameters;
this.resultReceiver = resultReceiver;
}
@@ -53,6 +63,10 @@ public class DownloadServiceCommand {
if (resultReceiver != null) {
command.putExtra(ProviderAPI.RECEIVER_KEY, resultReceiver);
}
+ if (parameters == null) {
+ parameters = Bundle.EMPTY;
+ }
+ command.putExtra(ProviderAPI.PARAMETERS, parameters);
return command;
}
@@ -73,7 +87,12 @@ public class DownloadServiceCommand {
command.execute();
}
- public static void execute(Context context, String action, ResultReceiver resultReceiver) {
+ public static void execute(Context context, String action, Bundle parameters) {
+ DownloadServiceCommand command = new DownloadServiceCommand(context, action, parameters);
+ command.execute();
+ }
+
+ public static void execute(Context context, String action, Bundle parameters, ResultReceiver resultReceiver) {
DownloadServiceCommand command = new DownloadServiceCommand(context, action, resultReceiver);
command.execute();
}
diff --git a/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/UpdateDownloadManager.java b/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/UpdateDownloadManager.java
index b50c587c..109164c5 100644
--- a/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/UpdateDownloadManager.java
+++ b/app/src/fatweb/java/se.leap.bitmaskclient/appUpdate/UpdateDownloadManager.java
@@ -48,6 +48,8 @@ import static se.leap.bitmaskclient.base.models.Constants.BROADCAST_DOWNLOAD_SER
import static se.leap.bitmaskclient.base.models.Constants.BROADCAST_RESULT_CODE;
import static se.leap.bitmaskclient.base.models.Constants.BROADCAST_RESULT_KEY;
import static se.leap.bitmaskclient.base.utils.FileHelper.readPublicKey;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.DELAY;
+import static se.leap.bitmaskclient.providersetup.ProviderAPI.PARAMETERS;
import static se.leap.bitmaskclient.providersetup.ProviderAPI.RECEIVER_KEY;
public class UpdateDownloadManager implements Logger, DownloadConnector.DownloadProgress {
@@ -93,6 +95,15 @@ public class UpdateDownloadManager implements Logger, DownloadConnector.Download
receiver = command.getParcelableExtra(RECEIVER_KEY);
}
String action = command.getAction();
+ Bundle parameters = command.getBundleExtra(PARAMETERS);
+
+ if (parameters.containsKey(DELAY)) {
+ try {
+ Thread.sleep(parameters.getLong(DELAY));
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
Bundle result = new Bundle();
switch (action) {
diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java b/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java
index a523f440..05991390 100644
--- a/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java
+++ b/app/src/main/java/se/leap/bitmaskclient/eip/EipSetupObserver.java
@@ -369,7 +369,9 @@ public class EipSetupObserver extends BroadcastReceiver implements VpnStatus.Sta
Provider provider = ProviderObservable.getInstance().getCurrentProvider();
if (setupNClosestGateway.get() > 0 || provider.shouldUpdateEipServiceJson()) {
//setupNClostestGateway > 0: at least one failed gateway -> did the provider change it's gateways?
- ProviderAPICommand.execute(appContext, ProviderAPI.DOWNLOAD_SERVICE_JSON, provider);
+ Bundle parameters = new Bundle();
+ parameters.putLong(DELAY, 500);
+ ProviderAPICommand.execute(appContext, ProviderAPI.DOWNLOAD_SERVICE_JSON, parameters, provider);
}
if (shouldCheckAppUpdate()) {