From c53204f9c346332a7dc4757fb1a3ccbd67a79301 Mon Sep 17 00:00:00 2001 From: n8fr8 Date: Tue, 31 Oct 2017 11:11:46 -0400 Subject: [PATCH] only refresh VPN settings if app selection changes --- .../torproject/android/OrbotMainActivity.java | 12 +++-- .../android/ui/AppManagerActivity.java | 46 ++++++++++--------- .../android/service/vpn/OrbotVpnManager.java | 1 - .../android/service/vpn/TorVpnService.java | 6 --- 4 files changed, 33 insertions(+), 32 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(); + + if (cbox != null) { + final TorifiedApp app = (TorifiedApp) cbox.getTag(); + if (app != null) { + app.setTorified(!app.isTorified()); + cbox.setChecked(app.isTorified()); + } + + saveAppSettings(this); } - - 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.