-/**
- * Copyright 2016-2017 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.content.Intent;
import android.content.pm.PackageManager;
import android.net.Proxy;
-import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
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));
-
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);
+ // Use `AlertDialog.Builder` to create the `AlertDialog`.
+ AlertDialog.Builder dialogBuilder;
+
+ // Set the style according to the theme.
+ if (MainWebViewActivity.darkTheme) {
+ dialogBuilder = new AlertDialog.Builder(parentActivity, R.style.PrivacyBrowserAlertDialogDark);
+ } else {
+ dialogBuilder = new AlertDialog.Builder(parentActivity, R.style.PrivacyBrowserAlertDialogLight);
+ }
+
+ // Set the message.
dialogBuilder.setMessage(R.string.orbot_proxy_not_installed);
+
+ // Set the positive button.
dialogBuilder.setPositiveButton(R.string.close, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
- // Convert `dialogBuilder` to `alertDialog` and display it on the screen.
+ // Convert `dialogBuilder` to `alertDialog`.
AlertDialog alertDialog = dialogBuilder.create();
+
+ // Make it so.
alertDialog.show();
}
- } else { // Otherwise set the default grey `appBar` background.
- MainWebView.appBar.setBackgroundDrawable(ContextCompat.getDrawable(privacyBrowserContext, R.color.gray_100));
}
}
}