[tor-commits] [orbot/master] only show app icons after granting vpn permissioN

n8fr8 at torproject.org n8fr8 at torproject.org
Mon Aug 24 21:02:51 UTC 2020


commit b3059ecc99f4aa9f7a782f5a122845b5c292b112
Author: bim <dsnake at protonmail.com>
Date:   Fri Jul 17 04:14:11 2020 -0400

    only show app icons after granting vpn permissioN
---
 .../org/torproject/android/OrbotMainActivity.java  | 125 +++++++++++----------
 1 file changed, 63 insertions(+), 62 deletions(-)

diff --git a/app/src/main/java/org/torproject/android/OrbotMainActivity.java b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
index 328476a9..483e9180 100644
--- a/app/src/main/java/org/torproject/android/OrbotMainActivity.java
+++ b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
@@ -539,13 +539,14 @@ public class OrbotMainActivity extends AppCompatActivity implements OrbotConstan
 
     private void enableVPN(boolean enable) {
         Prefs.putUseVpn(enable);
-
+        drawAppShortcuts(false);
         if (enable) {
 
             Intent intentVPN = VpnService.prepare(this);
             if (intentVPN != null)
                 startActivityForResult(intentVPN, REQUEST_VPN);
             else {
+                drawAppShortcuts(true);
                 sendIntentToService(ACTION_START);
                 sendIntentToService(ACTION_START_VPN);
             }
@@ -555,7 +556,6 @@ public class OrbotMainActivity extends AppCompatActivity implements OrbotConstan
             sendIntentToService(ACTION_STOP_VPN);
         }
 
-        addAppShortcuts();
     }
 
     private void enableHiddenServicePort(
@@ -834,6 +834,7 @@ public class OrbotMainActivity extends AppCompatActivity implements OrbotConstan
                 refreshVPNApps();
 
         } else if (request == REQUEST_VPN && response == RESULT_OK) {
+            drawAppShortcuts(true);
             sendIntentToService(ACTION_START_VPN);
         } else if (request == REQUEST_VPN && response == RESULT_CANCELED) {
             mBtnVPN.setChecked(false);
@@ -923,7 +924,7 @@ public class OrbotMainActivity extends AppCompatActivity implements OrbotConstan
         else
             updateStatus(null, torStatus);
 
-        addAppShortcuts();
+        drawAppShortcuts(Prefs.useVpn());
 
         //now you can handle the intents properly
         handleIntents();
@@ -1197,84 +1198,84 @@ public class OrbotMainActivity extends AppCompatActivity implements OrbotConstan
         lblStatus.setText(getString(R.string.newnym));
     }
 
-    private void addAppShortcuts() {
+    private void drawAppShortcuts(boolean showSelectedApps) {
+
+        if (!PermissionManager.isLollipopOrHigher()) return;
+
         LinearLayout llBoxShortcuts = findViewById(R.id.boxAppShortcuts);
 
         PackageManager pMgr = getPackageManager();
 
         llBoxShortcuts.removeAllViews();
 
-        if (PermissionManager.isLollipopOrHigher()) {
+        if (showSelectedApps) {
+            ArrayList<String> pkgIds = new ArrayList<>();
+            String tordAppString = mPrefs.getString(PREFS_KEY_TORIFIED, "");
 
-            if (Prefs.useVpn()) {
-                ArrayList<String> pkgIds = new ArrayList<>();
-                String tordAppString = mPrefs.getString(PREFS_KEY_TORIFIED, "");
+            if (TextUtils.isEmpty(tordAppString)) {
+                addFullDeviceVpnView(llBoxShortcuts);
+            } else {
+                StringTokenizer st = new StringTokenizer(tordAppString, "|");
+                while (st.hasMoreTokens() && pkgIds.size() < 4)
+                    pkgIds.add(st.nextToken());
+                int appsAdded = 0;
+                for (final String pkgId : pkgIds) {
+                    try {
+                        ApplicationInfo aInfo = getPackageManager().getApplicationInfo(pkgId, 0);
+                        // skip disabled packages
+                        if (!aInfo.enabled) continue;
+                        ImageView iv = new ImageView(this);
+                        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+                        params.setMargins(3, 3, 3, 3);
+                        iv.setLayoutParams(params);
+                        iv.setImageDrawable(pMgr.getApplicationIcon(pkgId));
+
+                        iv.setOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View v) {
+                                openBrowser(URL_TOR_CHECK, false, pkgId);
+                            }
+                        });
 
-                if (TextUtils.isEmpty(tordAppString)) {
-                    addFullDeviceVpnView(llBoxShortcuts);
-                } else {
-                    StringTokenizer st = new StringTokenizer(tordAppString, "|");
-                    while (st.hasMoreTokens() && pkgIds.size() < 4)
-                        pkgIds.add(st.nextToken());
-                    int appsAdded = 0;
-                    for (final String pkgId : pkgIds) {
-                        try {
-                            ApplicationInfo aInfo = getPackageManager().getApplicationInfo(pkgId, 0);
-                            // skip disabled packages
-                            if (!aInfo.enabled) continue;
-                            ImageView iv = new ImageView(this);
-                            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
-                            params.setMargins(3, 3, 3, 3);
-                            iv.setLayoutParams(params);
-                            iv.setImageDrawable(pMgr.getApplicationIcon(pkgId));
-
-                            iv.setOnClickListener(new View.OnClickListener() {
-                                @Override
-                                public void onClick(View v) {
-                                    openBrowser(URL_TOR_CHECK, false, pkgId);
-                                }
-                            });
-
-                            llBoxShortcuts.addView(iv);
-                            appsAdded++;
-                        } catch (Exception e) {
-                            //package not installed?
-                        }
+                        llBoxShortcuts.addView(iv);
+                        appsAdded++;
+                    } catch (Exception e) {
+                        //package not installed?
                     }
-                    if (appsAdded == 0) {
+                }
+                if (appsAdded == 0) {
                         /* if a user uninstalled or disabled all apps that were set on the device
                            then we want to have the no apps added view appear even though
                            the tordAppString variable is not empty */
-                        addFullDeviceVpnView(llBoxShortcuts);
-                    }
+                    addFullDeviceVpnView(llBoxShortcuts);
                 }
-            } else {
-                TextView tv = new TextView(this);
-                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
-                params.setMargins(12, 3, 3, 3);
-                tv.setLayoutParams(params);
-                tv.setText(R.string.vpn_disabled);
-                llBoxShortcuts.addView(tv);
             }
-
-            //now add app edit/add shortcut
-            ImageView iv = new ImageView(this);
+        } else {
+            TextView tv = new TextView(this);
             LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
-            params.setMargins(3, 3, 3, 3);
-            iv.setLayoutParams(params);
-            iv.setImageDrawable(getResources().getDrawable(R.drawable.ic_settings_white_24dp));
-            llBoxShortcuts.addView(iv);
-            iv.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    startActivityForResult(new Intent(OrbotMainActivity.this, AppManagerActivity.class), REQUEST_VPN_APPS_SELECT);
-
-                }
-            });
+            params.setMargins(12, 3, 3, 3);
+            tv.setLayoutParams(params);
+            tv.setText(R.string.vpn_disabled);
+            llBoxShortcuts.addView(tv);
         }
 
+        //now add app edit/add shortcut
+        ImageView iv = new ImageView(this);
+        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+        params.setMargins(3, 3, 3, 3);
+        iv.setLayoutParams(params);
+        iv.setImageDrawable(getResources().getDrawable(R.drawable.ic_settings_white_24dp));
+        llBoxShortcuts.addView(iv);
+        iv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                startActivityForResult(new Intent(OrbotMainActivity.this, AppManagerActivity.class), REQUEST_VPN_APPS_SELECT);
+
+            }
+        });
     }
 
+
     private void addFullDeviceVpnView(LinearLayout llBoxShortcuts) {
         TextView tv = new TextView(this);
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);





More information about the tor-commits mailing list