summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/providersetup
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-10-24 16:47:12 +0200
committercyBerta <cyberta@riseup.net>2021-10-24 16:47:12 +0200
commit01e40b1a843326036425727355550dba8bd66335 (patch)
tree4aff1136220ab1ed1abed77d2999e53751335ccb /app/src/main/java/se/leap/bitmaskclient/providersetup
parent62d2bdacec6c54f4453f1ad20425e99254998e9a (diff)
cancel tor and provider setup on pressing back button
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/providersetup')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java16
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/providersetup/activities/ProviderSetupBaseActivity.java4
2 files changed, 12 insertions, 8 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
index 6e07e84b..bc173b36 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/ProviderApiManagerBase.java
@@ -192,11 +192,12 @@ public abstract class ProviderApiManagerBase {
}
// uncomment for testing --v
- /* try {
+ try {
startTorProxy();
} catch (InterruptedException | TimeoutException e) {
e.printStackTrace();
- } */
+ return;
+ }
Bundle result = new Bundle();
switch (action) {
@@ -302,6 +303,9 @@ public abstract class ProviderApiManagerBase {
) {
serviceCallback.startTorService();
waitForTorCircuits();
+ if (TorStatusObservable.isCancelled()) {
+ throw new InterruptedException("cancelled Tor setup");
+ }
int port = serviceCallback.getTorHttpTunnelPort();
TorStatusObservable.setProxyPort(port);
return port != -1;
@@ -314,17 +318,17 @@ public abstract class ProviderApiManagerBase {
return;
}
CountDownLatch countDownLatch = new CountDownLatch(1);
- AtomicBoolean successfulSetup = new AtomicBoolean(false);
+ AtomicBoolean stopWaiting = new AtomicBoolean(false);
Observer observer = (o, arg) -> {
- if (TorStatusObservable.getStatus() == ON) {
- successfulSetup.set(true);
+ if (TorStatusObservable.getStatus() == ON || TorStatusObservable.isCancelled()) {
+ stopWaiting.set(true);
countDownLatch.countDown();
}
};
TorStatusObservable.getInstance().addObserver(observer);
countDownLatch.await(180, TimeUnit.SECONDS);
TorStatusObservable.getInstance().deleteObserver(observer);
- if (!successfulSetup.get()) {
+ if (!stopWaiting.get()) {
throw new TimeoutException("Timeout reached");
}
}
diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/ProviderSetupBaseActivity.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/ProviderSetupBaseActivity.java
index e4569c51..6395c7ae 100644
--- a/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/ProviderSetupBaseActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/activities/ProviderSetupBaseActivity.java
@@ -170,8 +170,8 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity
public void cancelSettingUpProvider(boolean stopTor) {
if (stopTor && TorStatusObservable.getStatus() != OFF) {
- Intent torServiceIntent = new Intent(getApplicationContext(), TorService.class);
- stopService(torServiceIntent);
+ Log.d(TAG, "SHUTDOWN - cancelSettingUpProvider stopTor:" + stopTor);
+ TorStatusObservable.shutdownTor(this);
}
providerConfigState = PROVIDER_NOT_SET;
provider = null;