[tor-commits] [orbot/master] adds optional string to the intent

n8fr8 at torproject.org n8fr8 at torproject.org
Thu Mar 2 04:10:20 UTC 2017


commit 0131cf20f0d37000f72f87baea5bd3de5bb86a34
Author: arrase <arrase at gmail.com>
Date:   Thu Nov 17 04:09:45 2016 +0100

    adds optional string to the intent
---
 .../org/torproject/android/OrbotMainActivity.java  | 92 +++++++++-------------
 1 file changed, 36 insertions(+), 56 deletions(-)

diff --git a/app/src/main/java/org/torproject/android/OrbotMainActivity.java b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
index 762ef8e..a33e8ad 100644
--- a/app/src/main/java/org/torproject/android/OrbotMainActivity.java
+++ b/app/src/main/java/org/torproject/android/OrbotMainActivity.java
@@ -27,6 +27,7 @@ import org.torproject.android.ui.hs.HiddenServicesActivity;
 import org.torproject.android.ui.ImageProgressView;
 import org.torproject.android.ui.PromoAppsActivity;
 import org.torproject.android.ui.Rotate3dAnimation;
+import org.torproject.android.ui.hs.providers.HSContentProvider;
 import org.torproject.android.vpn.VPNEnableActivity;
 
 import android.annotation.SuppressLint;
@@ -35,6 +36,8 @@ import android.app.ActivityManager.RunningServiceInfo;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.ContentValues;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -44,6 +47,7 @@ import android.content.SharedPreferences.Editor;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.database.Cursor;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -561,65 +565,40 @@ public class OrbotMainActivity extends AppCompatActivity
             stopVpnService();
     }
 	
-	private void enableHiddenServicePort (int hsPort) throws RemoteException, InterruptedException
+	private void enableHiddenServicePort (String hsName, int hsPort) throws RemoteException, InterruptedException
 	{
-		
-		Editor pEdit = mPrefs.edit();
-		
-		String hsPortString = mPrefs.getString("pref_hs_ports", "");
-		String onionHostname = mPrefs.getString("pref_hs_hostname","");
-		
-		if (hsPortString.indexOf(hsPort+"")==-1)
-		{
-			if (hsPortString.length() > 0 && hsPortString.indexOf(hsPort+"")==-1)
-				hsPortString += ',' + hsPort;
-			else
-				hsPortString = hsPort + "";
-			
-			pEdit.putString("pref_hs_ports", hsPortString);
-			pEdit.putBoolean("pref_hs_enable", true);
-			
-			pEdit.commit();
+		String onionHostname="";
+		String[] mProjection = new String[]{
+            HSContentProvider.HiddenService._ID,
+            HSContentProvider.HiddenService.NAME,
+            HSContentProvider.HiddenService.DOMAIN,
+            HSContentProvider.HiddenService.PORT};
+
+		if(hsName == null)
+			hsName = "hs"+hsPort;
+
+		ContentValues fields = new ContentValues();
+		fields.put("name", hsName);
+		fields.put("port", hsPort);
+		ContentResolver cr = getContentResolver();
+		Cursor row = cr.query(HSContentProvider.CONTENT_URI, mProjection, "port="+hsPort, null, null);
+
+		if(row == null) {
+			cr.insert(HSContentProvider.CONTENT_URI, fields);
+		} else {
+			onionHostname = row.getString(row.getColumnIndex(HSContentProvider.HiddenService.NAME));
+			cr.update(HSContentProvider.CONTENT_URI, fields, "port=" + hsPort, null);
+			row.close();
 		}
 
-		if (onionHostname == null || onionHostname.length() == 0)
-		{
-			requestTorRereadConfig();
+		requestTorRereadConfig();
 
-			new Thread () {
+		// TODO: Wait for hostname
 
-			    public void run ()
-				{
-					String onionHostname = mPrefs.getString("pref_hs_hostname","");
-
-					while (onionHostname.length() == 0)				
-					{
-						//we need to stop and start Tor
-						try {					
-							Thread.sleep(3000); //wait three seconds					
-						} catch (Exception e) {
-							// TODO Auto-generated catch block
-							e.printStackTrace();
-						}
-						 
-						onionHostname = mPrefs.getString("pref_hs_hostname","");						
-					}
-					
-					Intent nResult = new Intent();
-					nResult.putExtra("hs_host", onionHostname);
-					setResult(RESULT_OK, nResult);
-					finish();
-				}
-			}.start();
-		
-		}
-		else
-		{
-			Intent nResult = new Intent();
-			nResult.putExtra("hs_host", onionHostname);
-			setResult(RESULT_OK, nResult);
-			finish();
-		}
+		Intent nResult = new Intent();
+		nResult.putExtra("hs_host", onionHostname);
+		setResult(RESULT_OK, nResult);
+		finish();
 	
 	}
 	
@@ -640,7 +619,8 @@ public class OrbotMainActivity extends AppCompatActivity
 		
 		if (action.equals(INTENT_ACTION_REQUEST_HIDDEN_SERVICE))
 		{
-        	final int hiddenServicePortRequest = getIntent().getIntExtra("hs_port", -1);
+        	final int hiddenServicePort = getIntent().getIntExtra("hs_port", -1);
+        	final String  hiddenServiceName = getIntent().getStringExtra("hs_name");
 
 			DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
 			    
@@ -649,7 +629,7 @@ public class OrbotMainActivity extends AppCompatActivity
 			        case DialogInterface.BUTTON_POSITIVE:
 			            
 						try {
-							enableHiddenServicePort (hiddenServicePortRequest);
+							enableHiddenServicePort (hiddenServiceName, hiddenServicePort);
 							
 						} catch (RemoteException e) {
 							// TODO Auto-generated catch block





More information about the tor-commits mailing list