X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FMainWebViewActivity.java;h=01978f46869684e9111240c737353deffa8f65c1;hb=038527fc881cb548e212d3904c878cceaaf050ab;hp=0701a162a0fa9aecf83d7c719f0f3ad51ba1e712;hpb=db04c398139d9b73e664e03dc894823a0c5c6dee;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java index 0701a162..01978f46 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -1,5 +1,5 @@ /* - * Copyright 2015-2017 Soren Stoutner . + * Copyright © 2015-2017 Soren Stoutner . * * Download cookie code contributed 2017 Hendrik Knackstedt. Copyright assigned to Soren Stoutner . * @@ -568,8 +568,7 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation @SuppressWarnings("deprecation") @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { - // Use an external email program if the link begins with `mailto:`. - if (url.startsWith("mailto:")) { + if (url.startsWith("mailto:")) { // Load the URL in an external email program because it begins with `mailto:`. // We use `ACTION_SENDTO` instead of `ACTION_SEND` so that only email programs are launched. Intent emailIntent = new Intent(Intent.ACTION_SENDTO); @@ -581,10 +580,15 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation // Make it so. startActivity(emailIntent); + + // Returning `true` indicates the application is handling the URL. return true; } else { // Load the URL in Privacy Browser. - loadUrl(url); - return true; + // Apply the domain settings for the new URL. + applyDomainSettings(url); + + // Returning `false` causes the current `WebView` to handle the URL and prevents it from adding redirects to the history list. + return false; } } @@ -1232,10 +1236,21 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation return true; case R.id.share: + // Setup the share string. + String shareString; + if (webViewTitle != null) { + shareString = webViewTitle + " – " + urlTextBox.getText().toString(); + } else { + shareString = urlTextBox.getText().toString(); + } + + // Create the share intent. Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); - shareIntent.putExtra(Intent.EXTRA_TEXT, urlTextBox.getText().toString()); + shareIntent.putExtra(Intent.EXTRA_TEXT, shareString); shareIntent.setType("text/plain"); + + // Make it so. startActivity(Intent.createChooser(shareIntent, "Share URL")); return true; @@ -1262,10 +1277,6 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation }, 200); return true; - case R.id.refresh: - mainWebView.reload(); - return true; - case R.id.print: // Get a `PrintManager` instance. PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE); @@ -1285,6 +1296,10 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation //Everything else will be handled by `CreateHomeScreenShortcutDialog` and the associated listener below. return true; + case R.id.refresh: + mainWebView.reload(); + return true; + default: // Don't consume the event. return super.onOptionsItemSelected(menuItem); @@ -1866,7 +1881,7 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation String unformattedUrlString = urlTextBox.getText().toString().trim(); // Check to see if `unformattedUrlString` is a valid URL. Otherwise, convert it into a search. - if ((Patterns.WEB_URL.matcher(unformattedUrlString).matches()) || (unformattedUrlString.contains("localhost"))) { + if ((Patterns.WEB_URL.matcher(unformattedUrlString).matches()) || (unformattedUrlString.startsWith("http://")) || (unformattedUrlString.startsWith("https://"))) { // Add `http://` at the beginning if it is missing. Otherwise the app will segfault. if (!unformattedUrlString.startsWith("http")) { unformattedUrlString = "http://" + unformattedUrlString; @@ -2139,7 +2154,7 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation incognitoModeEnabled = sharedPreferences.getBoolean("incognito_mode", false); boolean doNotTrackEnabled = sharedPreferences.getBoolean("do_not_track", false); boolean proxyThroughOrbot = sharedPreferences.getBoolean("proxy_through_orbot", false); - fullScreenBrowsingModeEnabled = sharedPreferences.getBoolean("enable_full_screen_browsing_mode", false); + fullScreenBrowsingModeEnabled = sharedPreferences.getBoolean("full_screen_browsing_mode", false); hideSystemBarsOnFullscreen = sharedPreferences.getBoolean("hide_system_bars", false); translucentNavigationBarOnFullscreen = sharedPreferences.getBoolean("translucent_navigation_bar", true); swipeToRefreshEnabled = sharedPreferences.getBoolean("swipe_to_refresh", false);