-/**
- * Copyright 2016 Soren Stoutner <soren@stoutner.com>.
+/*
+ * Copyright 2016-2017 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import android.util.ArrayMap;
import android.util.Log;
-import com.stoutner.privacybrowser.activities.MainWebView;
+import com.stoutner.privacybrowser.activities.MainWebViewActivity;
import com.stoutner.privacybrowser.R;
import java.lang.reflect.Field;
public class OrbotProxyHelper {
public static void setProxy(Context privacyBrowserContext, Activity parentActivity, String proxyHost, String proxyPort) {
+
// Set the proxy values
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", proxyPort);
if (proxyPort.equals("8118")) { // Orbot proxy was turned on.
// Set the `appBar` background to be light blue if Orbot proxy support is enabled.
- MainWebView.appBar.setBackgroundDrawable(ContextCompat.getDrawable(privacyBrowserContext, R.color.blue_50));
+ MainWebViewActivity.appBar.setBackgroundDrawable(ContextCompat.getDrawable(privacyBrowserContext, R.color.blue_50));
try { // Check to see if Orbot is installed.
PackageManager packageManager = privacyBrowserContext.getPackageManager();
packageManager.getPackageInfo("org.torproject.android", PackageManager.GET_ACTIVITIES);
- // Send an `intent` to start Orbot. The intent will be ignored if it is already running.
- Intent orbotIntent = new Intent("org.torproject.android.intent.action.START");
- orbotIntent.setPackage("org.torproject.android");
- privacyBrowserContext.sendBroadcast(orbotIntent);
+ // Ask Orbot to connect if its current status is not "ON".
+ if (!MainWebViewActivity.orbotStatus.equals("ON")) {
+ // Request Orbot to start.
+ Intent orbotIntent = new Intent("org.torproject.android.intent.action.START");
+
+ // Send the intent to the Orbot package.
+ orbotIntent.setPackage("org.torproject.android");
+
+ // Request a status response be sent back to this package.
+ orbotIntent.putExtra("org.torproject.android.intent.extra.PACKAGE_NAME", privacyBrowserContext.getPackageName());
+
+ // Make it so.
+ privacyBrowserContext.sendBroadcast(orbotIntent);
+ }
} catch (PackageManager.NameNotFoundException exception){ // If an exception is thrown, Orbot is not installed.
// Build an `AlertDialog`. `R.style.LightAlertDialog` formats the color of the button text.
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(parentActivity, R.style.LightAlertDialog);
alertDialog.show();
}
} else { // Otherwise set the default grey `appBar` background.
- MainWebView.appBar.setBackgroundDrawable(ContextCompat.getDrawable(privacyBrowserContext, R.color.gray_100));
+ MainWebViewActivity.appBar.setBackgroundDrawable(ContextCompat.getDrawable(privacyBrowserContext, R.color.gray_100));
}
}
}