[tor-commits] [orbot/master] app-mini project builds again

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


commit b9d2f90d2507b065b357c800d239caf814086cff
Author: bim <dsnake at protonmail.com>
Date:   Fri Jul 10 21:53:24 2020 -0400

    app-mini project builds again
    
    Applies the changes to the app-mini project that were in commit
    ec47151a0c5e9bf789c38a9f36820031241b54f4
    
    Notably the project not building confused people cloning the
    repository, see issue #348
---
 app-mini/src/main/AndroidManifest.xml              |   4 -
 .../torproject/android/mini/MiniMainActivity.java  |  52 ++++-----
 .../torproject/android/mini/OnBootReceiver.java    |  25 +----
 .../android/mini/vpn/VPNEnableActivity.java        | 121 ---------------------
 4 files changed, 28 insertions(+), 174 deletions(-)

diff --git a/app-mini/src/main/AndroidManifest.xml b/app-mini/src/main/AndroidManifest.xml
index 5da4d86e..6e73081a 100644
--- a/app-mini/src/main/AndroidManifest.xml
+++ b/app-mini/src/main/AndroidManifest.xml
@@ -50,10 +50,6 @@
             android:noHistory="true"
             android:stateNotNeeded="true"
             android:theme="@android:style/Theme.Translucent" />
-        <activity
-            android:name=".vpn.VPNEnableActivity"
-            android:exported="false"
-            android:label="@string/app_name" />
         <activity
             android:name=".settings.SettingsPreferences"
             android:label="@string/app_name" />
diff --git a/app-mini/src/main/java/org/torproject/android/mini/MiniMainActivity.java b/app-mini/src/main/java/org/torproject/android/mini/MiniMainActivity.java
index 7ef51c52..f697bcea 100644
--- a/app-mini/src/main/java/org/torproject/android/mini/MiniMainActivity.java
+++ b/app-mini/src/main/java/org/torproject/android/mini/MiniMainActivity.java
@@ -20,6 +20,7 @@ import android.graphics.Canvas;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
+import android.net.VpnService;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -56,12 +57,10 @@ import org.torproject.android.mini.ui.AppConfigActivity;
 import org.torproject.android.mini.ui.AppManagerActivity;
 import org.torproject.android.mini.ui.Rotate3dAnimation;
 import org.torproject.android.mini.ui.onboarding.OnboardingActivity;
-import org.torproject.android.mini.vpn.VPNEnableActivity;
 import org.torproject.android.service.OrbotConstants;
 import org.torproject.android.service.OrbotService;
 import org.torproject.android.service.TorServiceConstants;
 import org.torproject.android.service.util.Prefs;
-import org.torproject.android.service.vpn.TorVpnService;
 import org.torproject.android.service.vpn.TorifiedApp;
 import org.torproject.android.service.vpn.VpnConstants;
 import org.torproject.android.service.vpn.VpnPrefs;
@@ -275,7 +274,7 @@ public class MiniMainActivity extends AppCompatActivity
 
         //auto start VPN if VPN is enabled
         if (useVPN) {
-            startActivity(new Intent(MiniMainActivity.this,VPNEnableActivity.class));
+            sendIntentToService(TorServiceConstants.ACTION_START_VPN);
         }
 
         mBtnVPN.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@@ -463,16 +462,14 @@ public class MiniMainActivity extends AppCompatActivity
         }
     }
 
-	private void refreshVPNApps ()
-    {
-        TorVpnService.stop(this);
-        startActivity(new Intent(MiniMainActivity.this, VPNEnableActivity.class));
+	private void refreshVPNApps() {
+        sendIntentToService(TorServiceConstants.ACTION_STOP_VPN);
+        sendIntentToService(TorServiceConstants.ACTION_START_VPN);
     }
 
     private void enableVPN (boolean enable)
     {
-        if (enable && pkgIds.size() == 0)
-        {
+        if (enable && pkgIds.size() == 0) {
             showAppPicker();
         }
         else {
@@ -480,10 +477,18 @@ public class MiniMainActivity extends AppCompatActivity
             Prefs.putStartOnBoot(enable);
 
             if (enable) {
-                startActivityForResult(new Intent(MiniMainActivity.this, VPNEnableActivity.class), REQUEST_VPN);
+
+                Intent intentVPN = VpnService.prepare(this);
+
+                if (intentVPN != null) {
+                    startActivityForResult(intentVPN, REQUEST_VPN);
+                } else {
+                    sendIntentToService(TorServiceConstants.ACTION_START);
+                    sendIntentToService(TorServiceConstants.ACTION_START_VPN);
+                }
             } else {
-                TorVpnService.start(this);
-                stopTor();
+                sendIntentToService(TorServiceConstants.ACTION_STOP_VPN);
+                stopTor(); // todo this call isn't in the main Orbot app, is it needed?
             }
         }
     }
@@ -606,20 +611,7 @@ public class MiniMainActivity extends AppCompatActivity
 
 
             }
-        }
-        else if (request == REQUEST_VPN)
-        {
-			if (response == RESULT_OK) {
-                TorVpnService.start(this);
-
-            }
-			else if (response == VPNEnableActivity.ACTIVITY_RESULT_VPN_DENIED)
-			{
-			    mBtnVPN.setChecked(false);
-				Prefs.putUseVpn(false);
-			}
-        }
-        else if (request == REQUEST_VPN_APPS_SELECT)
+        } else if (request == REQUEST_VPN_APPS_SELECT)
         {
             if (response == RESULT_OK &&
                     torStatus == TorServiceConstants.STATUS_ON) {
@@ -627,10 +619,14 @@ public class MiniMainActivity extends AppCompatActivity
 
                 String newPkgId = data.getStringExtra(Intent.EXTRA_PACKAGE_NAME);
                 //add new entry
-
             }
-
+        } else if (request == REQUEST_VPN && response == RESULT_OK) {
+            sendIntentToService(TorServiceConstants.ACTION_START_VPN);
+        } else if (request == REQUEST_VPN && response == RESULT_CANCELED) {
+            mBtnVPN.setChecked(false);
+            Prefs.putUseVpn(false);
         }
+
         
         IntentResult scanResult = IntentIntegrator.parseActivityResult(request, response, data);
         if (scanResult != null) {
diff --git a/app-mini/src/main/java/org/torproject/android/mini/OnBootReceiver.java b/app-mini/src/main/java/org/torproject/android/mini/OnBootReceiver.java
index 56d2b5e9..c958df8b 100644
--- a/app-mini/src/main/java/org/torproject/android/mini/OnBootReceiver.java
+++ b/app-mini/src/main/java/org/torproject/android/mini/OnBootReceiver.java
@@ -1,11 +1,10 @@
 package org.torproject.android.mini;
 
-
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Build;
-import org.torproject.android.mini.vpn.VPNEnableActivity;
+
 import org.torproject.android.service.OrbotService;
 import org.torproject.android.service.TorServiceConstants;
 import org.torproject.android.service.util.Prefs;
@@ -16,29 +15,13 @@ public class OnBootReceiver extends BroadcastReceiver {
 
 	@Override
 	public void onReceive(Context context, Intent intent) {
-
-		if (Prefs.startOnBoot() && (!sReceivedBoot))
-		{
-			if (Prefs.useVpn())
-				startVpnService(context); //VPN will start Tor once it is done
-			else
-				startService(TorServiceConstants.ACTION_START, context);
-
+		if (Prefs.startOnBoot() && (!sReceivedBoot)) {
+			startService(TorServiceConstants.ACTION_START_ON_BOOT, context);
 			sReceivedBoot = true;
 		}
 	}
 	
-	public void startVpnService (final Context context)
-    	{
-		   Intent intent = new Intent(context,VPNEnableActivity.class);
-           intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-           context.startActivity(intent);
-
-    	}
-
-	private void startService (String action, Context context)
-	{
-
+	private void startService (String action, Context context) {
 		Intent intent = new Intent(context, OrbotService.class);
 		intent.setAction(action);
 		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
diff --git a/app-mini/src/main/java/org/torproject/android/mini/vpn/VPNEnableActivity.java b/app-mini/src/main/java/org/torproject/android/mini/vpn/VPNEnableActivity.java
deleted file mode 100644
index 153f5b57..00000000
--- a/app-mini/src/main/java/org/torproject/android/mini/vpn/VPNEnableActivity.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package org.torproject.android.mini.vpn;
-
-import android.content.Intent;
-import android.net.VpnService;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Handler;
-import android.util.Log;
-import android.view.Window;
-import androidx.appcompat.app.AppCompatActivity;
-import org.torproject.android.service.OrbotService;
-import org.torproject.android.service.TorServiceConstants;
-import org.torproject.android.service.util.Prefs;
-import org.torproject.android.service.vpn.TorVpnService;
-
-/**
- * To combat background service being stopped/swiped
- */
-public class VPNEnableActivity extends AppCompatActivity {
-	
-	private final static int REQUEST_VPN = 7777;
-	private	Intent intent = null;
-	private boolean checkVpn = true;
-	private Handler h = new Handler();
-	
-	@Override
-	public void onCreate(Bundle icicle ) {
-		requestWindowFeature(Window.FEATURE_NO_TITLE);
-
-		super.onCreate( icicle );
-
-		Log.d("VPNEnableActivity","prompting user to start Orbot VPN");
-	}
-	
-	public void onResume() {
-		super.onResume();
-		
-		if (checkVpn)
-		{
-			intent = VpnService.prepare(this);
-			
-			if (intent != null)
-				promptStartVpnService();
-			else
-				startVpnService ();
-			
-			checkVpn = false;
-		}
-	}
-	
-	public void promptStartVpnService () {
-		// todo no actual prompting happens here and this should be refactored
-		startVpnService();
-    }
-	 
-	private void startVpnService ()
-	{
-   		if (intent == null)
-   		{
-			Prefs.putUseVpn(true);
-
-			Log.d("VPNEnableActivity","VPN enabled, starting Tor...");
-			TorVpnService.start(this);
-            
-            Handler h = new Handler();
-            h.postDelayed(new Runnable () {
-            	
-            	public void run ()
-            	{
-            		sendIntentToService(TorServiceConstants.ACTION_START);		
-            		finish();
-            	}
-            }, 100);
-
-
-   		}
-   		else
-   		{
-   			Log.w("VPNEnableActivity","prompt for VPN");
-            startActivityForResult(intent,REQUEST_VPN);
-
-   		}
-
-	}
-
-	public static final int ACTIVITY_RESULT_VPN_DENIED = 63;
-
-	@Override
-	protected void onActivityResult(int request, int response, Intent data) {
-		super.onActivityResult(request, response, data);
-	        
-		if (request == REQUEST_VPN && response == RESULT_OK) {
-			TorVpnService.start(this);
-
-			h.postDelayed(new Runnable () {
-	            	@Override
-	            	public void run () {
-	            		sendIntentToService(TorServiceConstants.ACTION_START);
-	            		finish();
-	            	}
-	            }, 1000);
-		}
-		else if (request == REQUEST_VPN && response == RESULT_CANCELED) {
-			setResult(ACTIVITY_RESULT_VPN_DENIED);
-			finish();
-		}
-	  }
-	  
-
-		private void sendIntentToService(String action) {
-			Intent intent = new Intent(this, OrbotService.class);
-			intent.setAction(action);
-			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-				startForegroundService(intent);
-			}
-			else
-			{
-				startService(intent);
-			}
-		}
-}





More information about the tor-commits mailing list