commit 6dffafcbea68ad426c0555c14a31324caa4e9337 Author: n8fr8 nathan@guardianproject.info Date: Tue Jun 4 05:49:47 2019 -0400
add dynamic display of SOCKS and HTTP port proxy value --- .../org/torproject/android/OrbotMainActivity.java | 36 +++++++++++++++++++--- app/src/main/res/layout/layout_main.xml | 18 ++++++++++- app/src/main/res/values/strings.xml | 1 + .../org/torproject/android/service/TorService.java | 16 +++++++++- .../android/service/TorServiceConstants.java | 1 + 5 files changed, 65 insertions(+), 7 deletions(-)
diff --git a/app/src/main/java/org/torproject/android/OrbotMainActivity.java b/app/src/main/java/org/torproject/android/OrbotMainActivity.java index d1929f88..a87da30d 100644 --- a/app/src/main/java/org/torproject/android/OrbotMainActivity.java +++ b/app/src/main/java/org/torproject/android/OrbotMainActivity.java @@ -96,6 +96,7 @@ public class OrbotMainActivity extends AppCompatActivity
/* Useful UI bits */ private TextView lblStatus = null; //the main text display widget + private TextView lblPorts = null; private ImageView imgStatus = null; //the main touchable image for activating Orbot
private TextView downloadText = null; @@ -128,8 +129,10 @@ public class OrbotMainActivity extends AppCompatActivity // message types for mStatusUpdateHandler private final static int STATUS_UPDATE = 1; private static final int MESSAGE_TRAFFIC_COUNT = 2; + private static final int MESSAGE_PORTS = 3;
- public final static String INTENT_ACTION_REQUEST_HIDDEN_SERVICE = "org.torproject.android.REQUEST_HS_PORT"; + + public final static String INTENT_ACTION_REQUEST_HIDDEN_SERVICE = "org.torproject.android.REQUEST_HS_PORT"; public final static String INTENT_ACTION_REQUEST_START_TOR = "org.torproject.android.START_TOR";
@@ -179,6 +182,10 @@ public class OrbotMainActivity extends AppCompatActivity new IntentFilter(TorServiceConstants.LOCAL_ACTION_BANDWIDTH)); lbm.registerReceiver(mLocalBroadcastReceiver, new IntentFilter(TorServiceConstants.LOCAL_ACTION_LOG)); + lbm.registerReceiver(mLocalBroadcastReceiver, + new IntentFilter(TorServiceConstants.LOCAL_ACTION_PORTS)); + +
boolean showFirstTime = mPrefs.getBoolean("connect_first_time", true);
@@ -253,6 +260,15 @@ public class OrbotMainActivity extends AppCompatActivity
mStatusUpdateHandler.sendMessage(msg); } + else if (action.equals(TorServiceConstants.LOCAL_ACTION_PORTS)) { + + Message msg = mStatusUpdateHandler.obtainMessage(MESSAGE_PORTS); + msg.getData().putInt("socks",intent.getIntExtra("socks",-1)); + msg.getData().putInt("http",intent.getIntExtra("http",-1)); + + mStatusUpdateHandler.sendMessage(msg); + + } } };
@@ -277,6 +293,8 @@ public class OrbotMainActivity extends AppCompatActivity } });
+ lblPorts = findViewById(R.id.lblPorts); + imgStatus = (ImageView)findViewById(R.id.imgStatus); imgStatus.setOnLongClickListener(this);
@@ -1112,7 +1130,7 @@ public class OrbotMainActivity extends AppCompatActivity
}
- if (torStatus == null || newTorStatus.equals(torStatus)) { + if (torStatus == null || (newTorStatus != null && newTorStatus.equals(torStatus))) { torStatus = newTorStatus; return; } @@ -1233,14 +1251,14 @@ public class OrbotMainActivity extends AppCompatActivity
@Override public void handleMessage(final Message msg) { -
+ Bundle data = msg.getData(); + switch (msg.what) { case MESSAGE_TRAFFIC_COUNT:
- Bundle data = msg.getData(); - DataCount datacount = new DataCount(data.getLong("upload"),data.getLong("download")); + DataCount datacount = new DataCount(data.getLong("upload"),data.getLong("download"));
long totalRead = data.getLong("readTotal"); long totalWrite = data.getLong("writeTotal"); @@ -1249,6 +1267,14 @@ public class OrbotMainActivity extends AppCompatActivity uploadText.setText(formatCount(datacount.Upload) + " / " + formatTotal(totalWrite));
break; + case MESSAGE_PORTS: + + int socksPort = data.getInt("socks"); + int httpPort = data.getInt("http"); + + lblPorts.setText("SOCKS: " + socksPort + " | HTTP: " + httpPort); + + break; default: String newTorStatus = msg.getData().getString("status"); String log = (String)msg.obj; diff --git a/app/src/main/res/layout/layout_main.xml b/app/src/main/res/layout/layout_main.xml index 8c8ca79d..42e6691f 100644 --- a/app/src/main/res/layout/layout_main.xml +++ b/app/src/main/res/layout/layout_main.xml @@ -84,11 +84,27 @@ android:layout_below="@+id/frameMain" />
+ <TextView + android:id="@+id/lblPorts" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="14sp" + android:fontFamily="sans-serif-light" + android:lines="1" + android:text="@string/default_socks_http" + android:maxLines="1" + android:layout_margin="12dp" + android:ellipsize="end" + android:layout_gravity="top|center" + android:gravity="center" + android:layout_below="@+id/lblStatus" + /> + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:layout_below="@+id/lblStatus" + android:layout_below="@+id/lblPorts" android:id="@+id/controls"
> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9ae73c04..e8802b1f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -253,4 +253,5 @@
<string name="user_services">User services</string> <string name="app_services">App services</string> + <string name="default_socks_http">SOCKS: - HTTP: -</string> </resources> diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorService.java b/orbotservice/src/main/java/org/torproject/android/service/TorService.java index 9d88aeb9..690b2c5b 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/TorService.java +++ b/orbotservice/src/main/java/org/torproject/android/service/TorService.java @@ -1092,7 +1092,9 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon confTrans = st.nextToken().split(":")[1]; confTrans = confDns.substring(0,confTrans.length()-1); mPortTrans = Integer.parseInt(confTrans); - + + sendCallbackPorts(mPortSOCKS, mPortHTTP); + return Integer.parseInt(torProcId);
} @@ -1405,6 +1407,18 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
} + + private void sendCallbackPorts (int socksPort, int httpPort) + { + + Intent intent = new Intent(LOCAL_ACTION_PORTS); + // You can also include some extra data. + intent.putExtra("socks",socksPort); + intent.putExtra("http",httpPort); + + LocalBroadcastManager.getInstance(this).sendBroadcast(intent); + + }
protected void sendCallbackStatus(String currentStatus) { mCurrentStatus = currentStatus; diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java b/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java index 22a6ea29..dcbb824a 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java +++ b/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java @@ -107,6 +107,7 @@ public interface TorServiceConstants { String LOCAL_ACTION_LOG = "log"; String LOCAL_ACTION_BANDWIDTH = "bandwidth"; String LOCAL_EXTRA_LOG = "log"; + String LOCAL_ACTION_PORTS = "ports";
/** * All tor-related services and daemons are stopped
tor-commits@lists.torproject.org