public static boolean thirdPartyCookiesEnabled;
// domStorageEnabled is public static so it can be accessed from SettingsFragment. It is also used in onCreate(), onCreateOptionsMenu(), and onOptionsItemSelected().
public static boolean domStorageEnabled;
+ // javaScriptDisabledSearchURL is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and loadURLFromTextBox().
+ public static String javaScriptDisabledSearchURL;
+ // javaScriptEnabledSearchURL is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and loadURLFromTextBox().
+ public static String javaScriptEnabledSearchURL;
// homepage is public static so it can be accessed from SettingsFragment. It is also used in onCreate() and onOptionsItemSelected().
public static String homepage;
+ // swipeToRefresh is public static so it can be accessed from SettingsFragment. It is also used in onCreate().
+ public static SwipeRefreshLayout swipeToRefresh;
+ // swipeToRefreshEnabled is public static so it can be accessed from SettingsFragment. It is also used in onCreate().
+ public static boolean swipeToRefreshEnabled;
// drawerToggle is used in onCreate(), onPostCreate(), onConfigurationChanged(), onNewIntent(), and onNavigationItemSelected().
private ActionBarDrawerToggle drawerToggle;
final View adView = findViewById(R.id.adView);
// Implement swipe to refresh
- final SwipeRefreshLayout swipeToRefresh = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
+ swipeToRefresh = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
swipeToRefresh.setColorSchemeResources(R.color.blue);
swipeToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
// Hide zoom controls.
mainWebView.getSettings().setDisplayZoomControls(false);
+
// Initialize the default preference values the first time the program is run.
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
// Get the shared preference values.
SharedPreferences savedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Set JavaScript initial status.
+ // Set JavaScript initial status. The default value is false.
javaScriptEnabled = savedPreferences.getBoolean("javascript_enabled", false);
mainWebView.getSettings().setJavaScriptEnabled(javaScriptEnabled);
// Initialize cookieManager.
cookieManager = CookieManager.getInstance();
- // Set cookies initial status.
+ // Set cookies initial status. The default value is false.
firstPartyCookiesEnabled = savedPreferences.getBoolean("first_party_cookies_enabled", false);
cookieManager.setAcceptCookie(firstPartyCookiesEnabled);
- // Set third-party cookies initial status if API >= 21.
+ // Set third-party cookies initial status if API >= 21. The default value is false.
if (Build.VERSION.SDK_INT >= 21) {
thirdPartyCookiesEnabled = savedPreferences.getBoolean("third_party_cookies_enabled", false);
cookieManager.setAcceptThirdPartyCookies(mainWebView, thirdPartyCookiesEnabled);
}
- // Set DOM storage initial status.
+ // Set DOM storage initial status. The default value is false.
domStorageEnabled = savedPreferences.getBoolean("dom_storage_enabled", false);
mainWebView.getSettings().setDomStorageEnabled(domStorageEnabled);
- // Set homepage initial status.
+ // Set the user agent initial status.
+ String userAgentString = savedPreferences.getString("user_agent", "Default user agent");
+ switch (userAgentString) {
+ case "Default user agent":
+ // Do nothing.
+ break;
+
+ case "Custom user agent":
+ // Set the custom user agent on mainWebView, The default is "PrivacyBrowser/1.0".
+ mainWebView.getSettings().setUserAgentString(savedPreferences.getString("custom_user_agent", "PrivacyBrowser/1.0"));
+ break;
+
+ default:
+ // Set the selected user agent on mainWebView. The default is "PrivacyBrowser/1.0".
+ mainWebView.getSettings().setUserAgentString(savedPreferences.getString("user_agent", "PrivacyBrowser/1.0"));
+ break;
+ }
+
+ // Set the initial string for JavaScript disabled search.
+ if (savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=").equals("Custom URL")) {
+ // Get the custom URL string. The default is "".
+ javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search_custom_url", "");
+ } else {
+ // Use the string from javascript_disabled_search.
+ javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=");
+ }
+
+ // Set the initial string for JavaScript enabled search.
+ if (savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=").equals("Custom URL")) {
+ // Get the custom URL string. The default is "".
+ javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search_custom_url", "");
+ } else {
+ // Use the string from javascript_enabled_search.
+ javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=");
+ }
+
+
+ // Set homepage initial status. The default value is "https://www.duckduckgo.com".
homepage = savedPreferences.getString("homepage", "https://www.duckduckgo.com");
+ // Set swipe to refresh initial status. The default is true.
+ swipeToRefreshEnabled = savedPreferences.getBoolean("swipe_to_refresh_enabled", true);
+ swipeToRefresh.setEnabled(swipeToRefreshEnabled);
+
+
// Get the intent information that started the app.
final Intent intent = getIntent();
//Everything else will be handled by CreateHomeScreenShortcut and the associated listeners below.
return true;
+ case R.id.refresh:
+ mainWebView.reload();
+ return true;
+
default:
+ // Don't consume the event.
return super.onOptionsItemSelected(menuItem);
}
}
// Use the correct search URL based on javaScriptEnabled.
if (javaScriptEnabled) {
- formattedUrlString = "https://duckduckgo.com/?q=" + encodedUrlString;
- } else {
- formattedUrlString = "https://duckduckgo.com/html/?q=" + encodedUrlString;
+ formattedUrlString = javaScriptEnabledSearchURL + encodedUrlString;
+ } else { // JavaScript is disabled.
+ formattedUrlString = javaScriptDisabledSearchURL + encodedUrlString;
}
}