summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/tor
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/tor
parent62d2bdacec6c54f4453f1ad20425e99254998e9a (diff)
cancel tor and provider setup on pressing back button
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/tor')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java b/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java
index 281b21c0..fb7e4d93 100644
--- a/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java
+++ b/app/src/main/java/se/leap/bitmaskclient/tor/TorStatusObservable.java
@@ -1,10 +1,13 @@
package se.leap.bitmaskclient.tor;
import android.content.Context;
+import android.content.Intent;
import android.util.Log;
import androidx.annotation.Nullable;
+import org.torproject.jni.TorService;
+
import java.util.Observable;
import java.util.Vector;
@@ -22,6 +25,8 @@ public class TorStatusObservable extends Observable {
UNKOWN
}
+ private boolean cancelled = false;
+
public static final String LOG_TAG_TOR = "[TOR]";
public static final String LOG_TAG_SNOWFLAKE = "[SNOWFLAKE]";
@@ -97,6 +102,7 @@ public class TorStatusObservable extends Observable {
if (getInstance().status == TorStatus.OFF) {
getInstance().torNotificationManager.cancelNotifications(context);
+ getInstance().cancelled = false;
} else {
if (logKey != null) {
getInstance().lastTorLog = getStringFor(context, logKey);
@@ -195,4 +201,16 @@ public class TorStatusObservable extends Observable {
}
return null;
}
+
+ public static void shutdownTor(Context context) {
+ getInstance().cancelled = true;
+ getInstance().notifyObservers();
+
+ Intent intent = new Intent(context, TorService.class);
+ boolean stopped = context.stopService(intent);
+ }
+
+ public static boolean isCancelled() {
+ return getInstance().cancelled;
+ }
}