Implement Orbot proxy support. Fixes https://redmine.stoutner.com/issues/26.
[PrivacyBrowser.git] / app / src / main / java / com / stoutner / privacybrowser / SettingsFragment.java
index 7446ce61c814219dc6ed37ed84901facb62d037a..60e250b2241f0337f86251cf64b8e4d27ba13fe2 100644 (file)
@@ -20,6 +20,7 @@
 package com.stoutner.privacybrowser;
 
 import android.annotation.SuppressLint;
+import android.app.Activity;
 import android.content.SharedPreferences;
 import android.os.Build;
 import android.os.Bundle;
@@ -241,6 +242,17 @@ public class SettingsFragment extends PreferenceFragment {
                         MainWebViewActivity.mainWebView.getSettings().setUserAgentString(sharedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0"));
                         break;
 
+                    case "proxy_through_orbot":
+                        // Get a handle for `settingsActivity`.
+                        Activity settingsActivity = getActivity();
+
+                        // Update the proxy.  The default is `false`
+                        if (sharedPreferences.getBoolean("proxy_through_orbot", false)) {  // Orbot proxies on localhost port 8118.
+                            OrbotProxyHelper.setProxy(MainWebViewActivity.privacyBrowserContext, settingsActivity, "localhost", "8118");
+                        } else {  // Disable the proxy by setting the host to `null` and the port to `0`.
+                            OrbotProxyHelper.setProxy(MainWebViewActivity.privacyBrowserContext, settingsActivity, "", "0");
+                        }
+
                     case "javascript_disabled_search":
                         String newJavaScriptDisabledSearchString = sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=");
                         if (newJavaScriptDisabledSearchString.equals("Custom URL")) {