- public void findPreviousOnPage(View view) {
- // Go to the previous highlighted phrase on the page. `false` goes backwards instead of forwards.
- mainWebView.findNext(false);
- }
-
- public void findNextOnPage(View view) {
- // Go to the next highlighted phrase on the page. `true` goes forwards instead of backwards.
- mainWebView.findNext(true);
- }
-
- public void closeFindOnPage(View view) {
- // Delete the contents of `find_on_page_edittext`.
- findOnPageEditText.setText(null);
-
- // Clear the highlighted phrases.
- mainWebView.clearMatches();
-
- // Hide the Find on Page `RelativeLayout`.
- findOnPageLinearLayout.setVisibility(View.GONE);
-
- // Show the URL app bar.
- supportAppBar.setVisibility(View.VISIBLE);
-
- // Hide the keyboard so we can see the webpage. `0` indicates no additional flags.
- inputMethodManager.hideSoftInputFromWindow(mainWebView.getWindowToken(), 0);
- }
-
- private void applyAppSettings() {
- // Get the shared preference values. `this` references the current context.
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-
- // Store the values from `sharedPreferences` in variables.
- String javaScriptDisabledSearchString = sharedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=");
- String javaScriptDisabledSearchCustomURLString = sharedPreferences.getString("javascript_disabled_search_custom_url", "");
- String javaScriptEnabledSearchString = sharedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=");
- String javaScriptEnabledSearchCustomURLString = sharedPreferences.getString("javascript_enabled_search_custom_url", "");
- String homepageString = sharedPreferences.getString("homepage", "https://www.duckduckgo.com");
- String torHomepageString = sharedPreferences.getString("tor_homepage", "https://3g2upl4pq6kufc4m.onion");
- String torJavaScriptDisabledSearchString = sharedPreferences.getString("tor_javascript_disabled_search", "https://3g2upl4pq6kufc4m.onion/html/?q=");
- String torJavaScriptDisabledSearchCustomURLString = sharedPreferences.getString("tor_javascript_disabled_search_custom_url", "");
- String torJavaScriptEnabledSearchString = sharedPreferences.getString("tor_javascript_enabled_search", "https://3g2upl4pq6kufc4m.onion/?q=");
- String torJavaScriptEnabledSearchCustomURLString = sharedPreferences.getString("tor_javascript_enabled_search_custom_url", "");
- swipeToRefreshEnabled = sharedPreferences.getBoolean("swipe_to_refresh_enabled", false);
- adBlockerEnabled = sharedPreferences.getBoolean("block_ads", true);
- boolean doNotTrackEnabled = sharedPreferences.getBoolean("do_not_track", false);
- proxyThroughOrbot = sharedPreferences.getBoolean("proxy_through_orbot", false);
- fullScreenBrowsingModeEnabled = sharedPreferences.getBoolean("enable_full_screen_browsing_mode", false);
- hideSystemBarsOnFullscreen = sharedPreferences.getBoolean("hide_system_bars", false);
- translucentNavigationBarOnFullscreen = sharedPreferences.getBoolean("translucent_navigation_bar", true);
-
- // Set the homepage, search, and proxy options.
- if (proxyThroughOrbot) { // Set the Tor options.
- // Set `torHomepageString` as `homepage`.
- homepage = torHomepageString;
-
- // If formattedUrlString is null assign the homepage to it.
- if (formattedUrlString == null) {
- formattedUrlString = homepage;
- }
-
- // Set JavaScript disabled search.
- if (torJavaScriptDisabledSearchString.equals("Custom URL")) { // Get the custom URL string.
- javaScriptDisabledSearchURL = torJavaScriptDisabledSearchCustomURLString;
- } else { // Use the string from the pre-built list.
- javaScriptDisabledSearchURL = torJavaScriptDisabledSearchString;
- }
-
- // Set JavaScript enabled search.
- if (torJavaScriptEnabledSearchString.equals("Custom URL")) { // Get the custom URL string.
- javaScriptEnabledSearchURL = torJavaScriptEnabledSearchCustomURLString;
- } else { // Use the string from the pre-built list.
- javaScriptEnabledSearchURL = torJavaScriptEnabledSearchString;
- }
-
- // Set the proxy. `this` refers to the current activity where an `AlertDialog` might be displayed.
- OrbotProxyHelper.setProxy(getApplicationContext(), this, "localhost", "8118");
-
- // Display a message to the user if we are waiting on Orbot.
- if (!orbotStatus.equals("ON")) {
- // Save `formattedUrlString` in `pendingUrl`.
- pendingUrl = formattedUrlString;
-
- // Load a waiting page. `null` specifies no encoding, which defaults to ASCII.
- mainWebView.loadData(waitingForOrbotHTMLString, "text/html", null);
- }
- } else { // Set the non-Tor options.
- // Set `homepageString` as `homepage`.
- homepage = homepageString;
-
- // If formattedUrlString is null assign the homepage to it.
- if (formattedUrlString == null) {
- formattedUrlString = homepage;
- }
-
- // Set JavaScript disabled search.
- if (javaScriptDisabledSearchString.equals("Custom URL")) { // Get the custom URL string.
- javaScriptDisabledSearchURL = javaScriptDisabledSearchCustomURLString;
- } else { // Use the string from the pre-built list.
- javaScriptDisabledSearchURL = javaScriptDisabledSearchString;
- }
-
- // Set JavaScript enabled search.
- if (javaScriptEnabledSearchString.equals("Custom URL")) { // Get the custom URL string.
- javaScriptEnabledSearchURL = javaScriptEnabledSearchCustomURLString;
- } else { // Use the string from the pre-built list.
- javaScriptEnabledSearchURL = javaScriptEnabledSearchString;
- }
-
- // Reset the proxy to default. The host is `""` and the port is `"0"`.
- OrbotProxyHelper.setProxy(getApplicationContext(), this, "", "0");
-
- // Reset `pendingUrl` if we are currently waiting for Orbot to connect.
- if (!pendingUrl.isEmpty()) {
- formattedUrlString = pendingUrl;
- pendingUrl = "";
- }
- }
-
- // Set swipe to refresh.
- swipeRefreshLayout.setEnabled(swipeToRefreshEnabled);
-
- // Set Do Not Track status.
- if (doNotTrackEnabled) {
- customHeaders.put("DNT", "1");
- } else {
- customHeaders.remove("DNT");
- }
-
- // Apply the appropriate full screen mode the `SYSTEM_UI` flags.
- if (fullScreenBrowsingModeEnabled && inFullScreenBrowsingMode) {
- if (hideSystemBarsOnFullscreen) { // Hide everything.
- // Remove the translucent navigation setting if it is currently flagged.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
-
- // Remove the translucent status bar overlay.
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-
- // Remove the translucent status bar overlay on the `Drawer Layout`, which is special and needs its own command.
- drawerLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);