[tor-commits] [orbot/master] only refresh VPN settings if app selection changes

n8fr8 at torproject.org n8fr8 at torproject.org
Tue Oct 31 15:59:11 UTC 2017


commit c53204f9c346332a7dc4757fb1a3ccbd67a79301
Author: n8fr8 <nathan at freitas.net>
Date:   Tue Oct 31 11:11:46 2017 -0400

    only refresh VPN settings if app selection changes
---
 .../org/torproject/android/OrbotMainActivity.java  | 12 ++++--
 .../torproject/android/ui/AppManagerActivity.java  | 44 +++++++++++-----------
 .../android/service/vpn/OrbotVpnManager.java       |  1 -
 .../android/service/vpn/TorVpnService.java         |  6 ---
 4 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/app/src/main/java/org/torproject/android/OrbotMainActivity.java b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
index 2c45d0f6..60a3a2c5 100644
--- a/app/src/main/java/org/torproject/android/OrbotMainActivity.java
+++ b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
@@ -609,6 +609,12 @@ public class OrbotMainActivity extends AppCompatActivity
 
 	}
 
+	private void refreshVPNApps ()
+    {
+        stopVpnService();
+        startActivity(new Intent(OrbotMainActivity.this, VPNEnableActivity.class));
+    }
+
     private void enableVPN (boolean enable)
     {
         Prefs.putUseVpn(enable);
@@ -798,10 +804,8 @@ public class OrbotMainActivity extends AppCompatActivity
 
             case INTENT_ACTION_REQUEST_START_TOR:
                 autoStartFromIntent = true;
-
                 startTor();
 
-
                 break;
             case Intent.ACTION_VIEW:
                 String urlString = intent.getDataString();
@@ -967,7 +971,9 @@ public class OrbotMainActivity extends AppCompatActivity
         }
         else if (request == REQUEST_VPN_APPS_SELECT)
         {
-                startActivity(new Intent(OrbotMainActivity.this, VPNEnableActivity.class));
+            if (response == RESULT_OK)
+                refreshVPNApps();
+
         }
         
         IntentResult scanResult = IntentIntegrator.parseActivityResult(request, response, data);
diff --git a/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java b/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java
index 9d909f54..0f8e2f06 100644
--- a/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java
+++ b/app/src/main/java/org/torproject/android/ui/AppManagerActivity.java
@@ -18,6 +18,7 @@ import org.torproject.android.service.vpn.TorifiedApp;
 
 import android.app.ProgressDialog;
 import android.content.Context;
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
 import android.content.pm.ApplicationInfo;
@@ -41,7 +42,7 @@ import android.widget.ImageView;
 import android.widget.ListAdapter;
 import android.widget.TextView;
 
-public class AppManagerActivity extends AppCompatActivity implements OnCheckedChangeListener, OnClickListener, OrbotConstants {
+public class AppManagerActivity extends AppCompatActivity implements OnClickListener, OrbotConstants {
 
     private GridView listApps;
     private ListAdapter adapterApps;
@@ -132,8 +133,6 @@ public class AppManagerActivity extends AppCompatActivity implements OnCheckedCh
                     entry.icon = (ImageView) convertView.findViewById(R.id.itemicon);
                     entry.box = (CheckBox) convertView.findViewById(R.id.itemcheck);
                     entry.text = (TextView) convertView.findViewById(R.id.itemtext);
-
-
                     convertView.setTag(entry);
 
 
@@ -146,9 +145,7 @@ public class AppManagerActivity extends AppCompatActivity implements OnCheckedCh
                     try {
                         entry.icon.setImageDrawable(pMgr.getApplicationIcon(app.getPackageName()));
                         entry.icon.setOnClickListener(AppManagerActivity.this);
-
-                        if (entry.box != null)
-                            entry.icon.setTag(entry.box);
+                        entry.icon.setTag(entry.box);
                     }
                     catch (Exception e)
                     {
@@ -159,17 +156,12 @@ public class AppManagerActivity extends AppCompatActivity implements OnCheckedCh
                 if (entry.text != null) {
                     entry.text.setText(app.getName());
                     entry.text.setOnClickListener(AppManagerActivity.this);
-
-                    if (entry.box != null)
-                        entry.text.setTag(entry.box);
+                    entry.text.setTag(entry.box);
                 }
 
-
                 if (entry.box != null) {
-                    entry.box.setOnCheckedChangeListener(AppManagerActivity.this);
-                    entry.box.setTag(app);
+                    entry.box.setOnClickListener(AppManagerActivity.this);
                     entry.box.setChecked(app.isTorified());
-
                 }
 
                 return convertView;
@@ -307,6 +299,7 @@ public class AppManagerActivity extends AppCompatActivity implements OnCheckedCh
     {
 
         StringBuilder tordApps = new StringBuilder();
+        Intent response = new Intent();
 
         for (TorifiedApp tApp:mApps)
         {
@@ -314,6 +307,7 @@ public class AppManagerActivity extends AppCompatActivity implements OnCheckedCh
             {
                 tordApps.append(tApp.getUsername());
                 tordApps.append("|");
+                response.putExtra(tApp.getUsername(),true);
             }
         }
 
@@ -321,12 +315,14 @@ public class AppManagerActivity extends AppCompatActivity implements OnCheckedCh
         edit.putString(PREFS_KEY_TORIFIED, tordApps.toString());
         edit.commit();
 
+        setResult(RESULT_OK,response);
     }
 
 
     /**
      * Called an application is check/unchecked
      */
+    /**
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         final TorifiedApp app = (TorifiedApp) buttonView.getTag();
         if (app != null) {
@@ -335,23 +331,29 @@ public class AppManagerActivity extends AppCompatActivity implements OnCheckedCh
 
         saveAppSettings(this);
 
-    }
+    }**/
 
 
 
 
     public void onClick(View v) {
 
-        CheckBox cbox = (CheckBox)v.getTag();
+        CheckBox cbox = null;
 
-        final TorifiedApp app = (TorifiedApp)cbox.getTag();
-        if (app != null) {
-            app.setTorified(!app.isTorified());
-            cbox.setChecked(app.isTorified());
-        }
+        if (v instanceof CheckBox)
+            cbox = (CheckBox)v;
+        else if (v.getTag() instanceof CheckBox)
+            cbox = (CheckBox)v.getTag();
 
-        saveAppSettings(this);
+        if (cbox != null) {
+            final TorifiedApp app = (TorifiedApp) cbox.getTag();
+            if (app != null) {
+                app.setTorified(!app.isTorified());
+                cbox.setChecked(app.isTorified());
+            }
 
+            saveAppSettings(this);
+        }
     }
 
 
diff --git a/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java b/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java
index 3d54e888..bbae15ea 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/vpn/OrbotVpnManager.java
@@ -114,7 +114,6 @@ public class OrbotVpnManager implements Handler.Callback {
 			    	
 		        	if (!mIsLollipop)
 		        	{
-	
 		        		startSocksBypass();
 		        	}
 		        	
diff --git a/orbotservice/src/main/java/org/torproject/android/service/vpn/TorVpnService.java b/orbotservice/src/main/java/org/torproject/android/service/vpn/TorVpnService.java
index f396860d..7d18ffd8 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/vpn/TorVpnService.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/vpn/TorVpnService.java
@@ -5,12 +5,6 @@ import android.app.Service;
 import android.content.Intent;
 import android.net.VpnService;
 import android.os.Build;
-import android.text.TextUtils;
-import android.util.Log;
-
-import org.torproject.android.service.OrbotConstants;
-import org.torproject.android.service.TorServiceConstants;
-import org.torproject.android.service.util.Prefs;
 
 /**
  * Created by n8fr8 on 9/26/16.





More information about the tor-commits mailing list