[tor-commits] [orbot/master] create a new pref: "Allow Background Starts"

n8fr8 at torproject.org n8fr8 at torproject.org
Thu Jun 25 14:59:59 UTC 2015


commit ac8329c7f279b1e3afb747cff8b15c2fa1821bf1
Author: Hans-Christoph Steiner <hans at eds.org>
Date:   Wed Jun 10 18:00:30 2015 -0400

    create a new pref: "Allow Background Starts"
    
    This lets the user disable the new ACTION_START Intent, in case they have
    more sensitive needs.
---
 res/values/strings.xml                                   |    2 ++
 res/xml/preferences.xml                                  |    5 +++++
 src/org/torproject/android/Prefs.java                    |    5 +++++
 src/org/torproject/android/service/StartTorReceiver.java |    6 +++++-
 4 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/res/values/strings.xml b/res/values/strings.xml
index 87aa35f..decd892 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -126,6 +126,8 @@
   <string name="pref_entrance_node">Entrance Nodes</string>
   <string name="pref_entrance_node_summary">Fingerprints, nicks, countries and addresses for the first hop</string>
   <string name="pref_entrance_node_dialog">Enter Entrance Nodes</string>
+  <string name="pref_allow_background_starts_title">Allow Background Starts</string>
+  <string name="pref_allow_background_starts_summary">Let any app tell Orbot to start Tor and related services</string>
   
   <string name="button_proxy_all">Proxy All</string>
   <string name="button_proxy_none">Proxy None</string>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index d910fee..e1e1828 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -22,6 +22,11 @@ android:summary="@string/pref_use_expanded_notifications"
 android:enabled="true" 
 android:title="@string/pref_use_expanded_notifications_title"/>
 
+<CheckBoxPreference
+android:defaultValue="true" 
+android:key="pref_allow_background_starts"
+android:summary="@string/pref_allow_background_starts_summary"
+android:title="@string/pref_allow_background_starts_title"/>
 
  <ListPreference android:title="@string/set_locale_title"
    android:key="pref_default_locale"
diff --git a/src/org/torproject/android/Prefs.java b/src/org/torproject/android/Prefs.java
index b1b1793..fad04ba 100644
--- a/src/org/torproject/android/Prefs.java
+++ b/src/org/torproject/android/Prefs.java
@@ -16,6 +16,7 @@ public class Prefs {
     private final static String PREF_HAS_ROOT = "has_root";
     private final static String PREF_PERSIST_NOTIFICATIONS = "pref_persistent_notifications";
     private final static String PREF_START_ON_BOOT = "pref_start_boot";
+    private final static String PREF_ALLOW_BACKGROUND_STARTS = "pref_allow_background_starts";
     private final static String PREF_TRANSPARENT = "pref_transparent";
     private final static String PREF_TRANSPARENT_ALL = "pref_transparent_all";
     private final static String PREF_TRANSPARENT_TETHERING = "pref_transparent_tethering";
@@ -98,6 +99,10 @@ public class Prefs {
         return prefs.getBoolean(PREF_PERSIST_NOTIFICATIONS, true);
     }
 
+    public static boolean allowBackgroundStarts() {
+        return prefs.getBoolean(PREF_ALLOW_BACKGROUND_STARTS, true);
+    }
+
     public static boolean useVpn() {
         return prefs.getBoolean(PREF_USE_VPN, false);
     }
diff --git a/src/org/torproject/android/service/StartTorReceiver.java b/src/org/torproject/android/service/StartTorReceiver.java
index 89df596..c89d880 100644
--- a/src/org/torproject/android/service/StartTorReceiver.java
+++ b/src/org/torproject/android/service/StartTorReceiver.java
@@ -6,13 +6,17 @@ import android.content.Context;
 import android.content.Intent;
 import android.text.TextUtils;
 
+import org.torproject.android.Prefs;
+
 public class StartTorReceiver extends BroadcastReceiver {
 
     @Override
     public void onReceive(Context context, Intent intent) {
         /* sanitize the Intent before forwarding it to TorService */
+        Prefs.setContext(context);
         String action = intent.getAction();
-        if (TextUtils.equals(action, TorServiceConstants.ACTION_START)) {
+        if (Prefs.allowBackgroundStarts()
+                && TextUtils.equals(action, TorServiceConstants.ACTION_START)) {
             Intent startTorIntent = new Intent(context, TorService.class);
             startTorIntent.setAction(action);
             String packageName = intent.getStringExtra(TorServiceConstants.EXTRA_PACKAGE_NAME);





More information about the tor-commits mailing list