From 01e40b1a843326036425727355550dba8bd66335 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sun, 24 Oct 2021 16:47:12 +0200 Subject: cancel tor and provider setup on pressing back button --- .../se/leap/bitmaskclient/tor/TorStatusObservable.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'app/src/main/java/se/leap/bitmaskclient/tor') 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; + } } -- cgit v1.2.3