[tor-commits] [snowflake-mobile/master] Finally implemented the custom URLs in to the service

cohosh at torproject.org cohosh at torproject.org
Fri Jul 10 16:27:27 UTC 2020


commit edaa544f29cbead7a8fc976fd958bccd57deedf9
Author: Hashik Donthineni <HashikDonthineni at gmail.com>
Date:   Sun Jun 28 19:32:14 2020 +0530

    Finally implemented the custom URLs in to the service
---
 app/src/main/AndroidManifest.xml                   |  1 +
 .../torproject/snowflake/GlobalApplication.java    | 30 ++++++++++++++++++++++
 .../torproject/snowflake/MyPersistentService.java  |  5 +++-
 3 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6b366fb..67e8537 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
 
     <application
+        android:name=".GlobalApplication"
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
diff --git a/app/src/main/java/org/torproject/snowflake/GlobalApplication.java b/app/src/main/java/org/torproject/snowflake/GlobalApplication.java
index 8ef1f16..b38393f 100644
--- a/app/src/main/java/org/torproject/snowflake/GlobalApplication.java
+++ b/app/src/main/java/org/torproject/snowflake/GlobalApplication.java
@@ -1,22 +1,45 @@
 package org.torproject.snowflake;
 
 import android.app.Application;
+import android.content.SharedPreferences;
+import android.util.Log;
+
+import org.torproject.snowflake.constants.SettingsConstants;
 
 import java.util.HashMap;
 import java.util.Map;
 
+import static android.content.ContentValues.TAG;
+import static androidx.preference.PreferenceManager.getDefaultSharedPreferences;
+
 public class GlobalApplication extends Application {
     private final static String BROKER_URL = "http://10.0.2.2:8080"; //10.0.2.2 is used to access computer's local host from Android Emulator.
     private final static String WEBSOCKET_URL = "wss://snowflake.freehaven.net:443";
+    private static SharedPreferences sharedPreferences;
 
     public static String getBrokerUrl() {
+        //Checking to see if the switch is turned on.
+        if (sharedPreferences.getBoolean(SettingsConstants.BROKER_SWITCH, false))
+            //Send the custom Broker URL, if the key is not found send default.
+            return sharedPreferences.getString(SettingsConstants.BROKER_ET, BROKER_URL);
         return BROKER_URL;
     }
 
     public static String getWebSocketUrl() {
+        //Checking to see if the switch is turned on.
+        if (sharedPreferences.getBoolean(SettingsConstants.RELAY_SWITCH, false))
+            //Send the custom Socket URL, if the key is not found send default.
+            return sharedPreferences.getString(SettingsConstants.RELAY_ET, WEBSOCKET_URL);
         return WEBSOCKET_URL;
     }
 
+    public static String getSTUN() {
+        //Checking to see if the switch is turned on.
+        if (sharedPreferences.getBoolean(SettingsConstants.STUN_SWITCH, false))
+            return sharedPreferences.getString(SettingsConstants.STUN_ET, null); //Send the custom STUN if it's turned on.
+        return null;
+    }
+
     public static Map<String, String> getHeadersMap() {
         HashMap<String, String> map = new HashMap<>();
         map.put("Content-type", "application/json");
@@ -24,4 +47,11 @@ public class GlobalApplication extends Application {
         map.put("Host", getBrokerUrl().replace("http://", ""));
         return map;
     }
+
+    @Override
+    public void onCreate() {
+        Log.d(TAG, "onCreate: ");
+        super.onCreate();
+        sharedPreferences = getDefaultSharedPreferences(this);
+    }
 }
diff --git a/app/src/main/java/org/torproject/snowflake/MyPersistentService.java b/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
index 29fdad6..fe85bea 100644
--- a/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
+++ b/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
@@ -276,7 +276,10 @@ public class MyPersistentService extends Service {
     private PeerConnection createPeerConnection(PeerConnectionFactory factory) {
         Log.d(TAG, "createPeerConnection: Creating a new peer connection");
         List<PeerConnection.IceServer> iceServers = new LinkedList<>();
-//        iceServers.add(PeerConnection.IceServer.builder("stun:stun.l.google.com:19302").createIceServer()); To Add custom ICE servers.
+        if (GlobalApplication.getSTUN() != null) {
+            iceServers.add(PeerConnection.IceServer.builder(GlobalApplication.getSTUN())
+                    .createIceServer()); //Adding custom ICE server.
+        }
         PeerConnection.RTCConfiguration rtcConfiguration = new PeerConnection.RTCConfiguration(iceServers);
         PeerConnection.Observer pcObserver = new MyPeerConnectionObserver(TAG, new PeerConnectionObserverCallback() {
 





More information about the tor-commits mailing list