package com.duckduckgo.mobile.android.network; import android.app.Application; import android.webkit.WebView; import ch.boye.httpclientandroidlib.conn.ClientConnectionManager; import ch.boye.httpclientandroidlib.conn.params.ConnManagerParams; import ch.boye.httpclientandroidlib.conn.params.ConnPerRouteBean; import ch.boye.httpclientandroidlib.conn.params.ConnRoutePNames; import ch.boye.httpclientandroidlib.impl.conn.tsccm.ThreadSafeClientConnManager; import ch.boye.httpclientandroidlib.params.BasicHttpParams; import ch.boye.httpclientandroidlib.params.HttpParams; import com.duckduckgo.mobile.android.DDGApplication; import com.duckduckgo.mobile.android.util.PreferencesManager; public class DDGNetworkConstants { public static DDGHttpClient mainClient; private static ClientConnectionManager mainConnManager; private static HttpParams httpParams = new BasicHttpParams(); public final static String PROXY_HOST = "127.0.0.1"; public final static int PROXY_HTTP_PORT = 8118; // default for Orbot/Tor private static WebView webView; // public static Map<String, String> extraHeaders = new HashMap<String, String>(); public static void initialize(DDGApplication application){ initializeMainClient(application, PreferencesManager.getEnableTor()); } public static void setWebView(WebView webView){ DDGNetworkConstants.webView = webView; } public static WebView getWebView(){ return webView; } public static void initializeMainClient(Application application, boolean enableTor){ // Create and initialize HTTP parameters httpParams = new BasicHttpParams(); ConnManagerParams.setMaxTotalConnections(httpParams, 100); // Increase default max connection per route to 20 ConnManagerParams.setMaxConnectionsPerRoute(httpParams, new ConnPerRouteBean(10)); // Create an HttpClient with the ThreadSafeClientConnManager. // This connection manager must be used if more than one thread will // be using the HttpClient. mainConnManager = new ThreadSafeClientConnManager(); mainClient = new DDGHttpClient(application.getApplicationContext(), mainConnManager, httpParams); if(enableTor){ //mainClient.getStrongTrustManager().setNotifyVerificationFail(true); //mainClient.getStrongTrustManager().setNotifyVerificationSuccess(true); mainClient.useProxy(true, "http", PROXY_HOST, PROXY_HTTP_PORT); } } }