]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java
Remove unneeded Snackbars.
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / MainWebViewActivity.java
index 78624a8ad3f30d19bb7f9a6f694bf985f64c4740..f2f8b040d5f0c4bf880ead557ce42da68c9c0bcb 100644 (file)
@@ -84,12 +84,8 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
     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;
-    // javaScriptDisabledSearchCustomURL is public static so it can be accessed from SettingsFragment.  It is also used in onCreate() and loadURLFromTextBox().
-    public static String javaScriptDisabledSearchCustomURL;
     // javaScriptEnabledSearchURL is public static so it can be accessed from SettingsFragment.  It is also used in onCreate() and loadURLFromTextBox().
     public static String javaScriptEnabledSearchURL;
-    // javaScriptEnabledSearchCustomURL is public static so it can be accessed from SettingsFragment.  It is also used in onCreate() and loadURLFromTextBox().
-    public static String javaScriptEnabledSearchCustomURL;
     // 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().
@@ -103,6 +99,8 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
     private DrawerLayout drawerLayout;
     // formattedUrlString is used in onCreate(), onOptionsItemSelected(), onCreateHomeScreenShortcutCreate(), and loadUrlFromTextBox().
     private String formattedUrlString;
+    // privacyIcon is used in onCreateOptionsMenu() and updatePrivacyIcon().
+    private MenuItem privacyIcon;
 
     // urlTextBox is used in onCreate(), onOptionsItemSelected(), and loadUrlFromTextBox().
     private EditText urlTextBox;
@@ -343,11 +341,42 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         domStorageEnabled = savedPreferences.getBoolean("dom_storage_enabled", false);
         mainWebView.getSettings().setDomStorageEnabled(domStorageEnabled);
 
-        // Set the initial status for the search URLs.
-        javaScriptDisabledSearchURL = savedPreferences.getString("javascript_disabled_search", "https://duckduckgo.com/html/?q=");
-        javaScriptDisabledSearchCustomURL = savedPreferences.getString("javascript_disabled_search_custom_url", "");
-        javaScriptEnabledSearchURL = savedPreferences.getString("javascript_enabled_search", "https://duckduckgo.com/?q=");
-        javaScriptEnabledSearchCustomURL = savedPreferences.getString("javascript_enabled_search_custom_url", "");
+        // 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");
@@ -409,8 +438,10 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         // Set mainMenu so it can be used by onOptionsItemSelected.
         mainMenu = menu;
 
+        // Initialize privacyIcon
+        privacyIcon = menu.findItem(R.id.toggleJavaScript);
+
         // Get MenuItems for checkable menu items.
-        MenuItem toggleJavaScript = menu.findItem(R.id.toggleJavaScript);
         MenuItem toggleFirstPartyCookies = menu.findItem(R.id.toggleFirstPartyCookies);
         MenuItem toggleThirdPartyCookies = menu.findItem(R.id.toggleThirdPartyCookies);
         MenuItem toggleDomStorage = menu.findItem(R.id.toggleDomStorage);
@@ -418,16 +449,8 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         MenuItem toggleSaveFormData = menu.findItem(R.id.toggleSaveFormData);
         */
 
-        // Set the initial icon for toggleJavaScript
-        if (javaScriptEnabled) {
-            toggleJavaScript.setIcon(R.drawable.javascript_enabled);
-        } else {
-            if (domStorageEnabled || firstPartyCookiesEnabled) {
-                toggleJavaScript.setIcon(R.drawable.warning);
-            } else {
-                toggleJavaScript.setIcon(R.drawable.privacy_mode);
-            }
-        }
+        // Set the initial status of the privacy icon.
+        updatePrivacyIcon();
 
         // Set the initial status of the menu item checkboxes.
         toggleFirstPartyCookies.setChecked(firstPartyCookiesEnabled);
@@ -475,114 +498,78 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         // Set the commands that relate to the menu entries.
         switch (menuItemId) {
             case R.id.toggleJavaScript:
-                if (javaScriptEnabled) {
-                    javaScriptEnabled = false;
-                    mainWebView.getSettings().setJavaScriptEnabled(false);
-                    mainWebView.reload();
+                // Switch the status of javaScriptEnabled.
+                javaScriptEnabled = !javaScriptEnabled;
+
+                // Apply the new JavaScript status.
+                mainWebView.getSettings().setJavaScriptEnabled(javaScriptEnabled);
 
-                    // Update the toggleJavaScript icon and display a snackbar.
+                // Update the privacy icon.
+                updatePrivacyIcon();
+
+                // Display a Snackbar.
+                if (javaScriptEnabled) {
+                    Snackbar.make(findViewById(R.id.mainWebView), R.string.javascript_enabled, Snackbar.LENGTH_SHORT).show();
+                } else {
                     if (domStorageEnabled || firstPartyCookiesEnabled) {
-                        menuItem.setIcon(R.drawable.warning);
                         Snackbar.make(findViewById(R.id.mainWebView), R.string.javascript_disabled, Snackbar.LENGTH_SHORT).show();
                     } else {
-                        menuItem.setIcon(R.drawable.privacy_mode);
                         Snackbar.make(findViewById(R.id.mainWebView), R.string.privacy_mode, Snackbar.LENGTH_SHORT).show();
                     }
-                } else {
-                    javaScriptEnabled = true;
-                    menuItem.setIcon(R.drawable.javascript_enabled);
-                    mainWebView.getSettings().setJavaScriptEnabled(true);
-                    mainWebView.reload();
-                    Snackbar.make(findViewById(R.id.mainWebView), R.string.javascript_enabled, Snackbar.LENGTH_SHORT).show();
                 }
+
+                // Reload the WebView.
+                mainWebView.reload();
                 return true;
 
             case R.id.toggleFirstPartyCookies:
-                if (firstPartyCookiesEnabled) {
-                    firstPartyCookiesEnabled = false;
-                    menuItem.setChecked(false);
-                    cookieManager.setAcceptCookie(false);
-                    mainWebView.reload();
+                // Switch the status of firstPartyCookiesEnabled.
+                firstPartyCookiesEnabled = !firstPartyCookiesEnabled;
 
-                    // Update the toggleJavaScript icon if appropriate and display a snackbar.
-                    if (!javaScriptEnabled) {
-                        if (domStorageEnabled) {
-                            toggleJavaScript.setIcon(R.drawable.warning);
-                            Snackbar.make(findViewById(R.id.mainWebView), R.string.first_party_cookies_disabled, Snackbar.LENGTH_SHORT).show();
-                        } else {
-                            toggleJavaScript.setIcon(R.drawable.privacy_mode);
-                            Snackbar.make(findViewById(R.id.mainWebView), R.string.privacy_mode, Snackbar.LENGTH_SHORT).show();
-                        }
-                    } else {
-                        Snackbar.make(findViewById(R.id.mainWebView), R.string.first_party_cookies_disabled, Snackbar.LENGTH_SHORT).show();
-                    }
-                } else {
-                    firstPartyCookiesEnabled = true;
-                    menuItem.setChecked(true);
-                    cookieManager.setAcceptCookie(true);
-                    mainWebView.reload();
+                // Update the menu checkbox.
+                menuItem.setChecked(firstPartyCookiesEnabled);
 
-                    // Update the toggleJavaScript icon if appropriate.
-                    if (!javaScriptEnabled) {
-                        toggleJavaScript.setIcon(R.drawable.warning);
-                    } // Else do nothing because JavaScript is enabled.
+                // Apply the new cookie status.
+                cookieManager.setAcceptCookie(firstPartyCookiesEnabled);
 
-                    Snackbar.make(findViewById(R.id.mainWebView), R.string.first_party_cookies_enabled, Snackbar.LENGTH_SHORT).show();
-                }
+                // Update the privacy icon.
+                updatePrivacyIcon();
+
+                // Reload the WebView.
+                mainWebView.reload();
                 return true;
 
             case R.id.toggleThirdPartyCookies:
                 if (Build.VERSION.SDK_INT >= 21) {
-                    if (thirdPartyCookiesEnabled) {
-                        thirdPartyCookiesEnabled = false;
-                        menuItem.setChecked(false);
-                        cookieManager.setAcceptThirdPartyCookies(mainWebView, false);
-                        mainWebView.reload();
+                    // Switch the status of thirdPartyCookiesEnabled.
+                    thirdPartyCookiesEnabled = !thirdPartyCookiesEnabled;
 
-                        Snackbar.make(findViewById(R.id.mainWebView), R.string.third_party_cookies_disabled, Snackbar.LENGTH_SHORT).show();
-                    } else {
-                        thirdPartyCookiesEnabled = true;
-                        menuItem.setChecked(true);
-                        cookieManager.setAcceptThirdPartyCookies(mainWebView, true);
-                        mainWebView.reload();
+                    // Update the menu checkbox.
+                    menuItem.setChecked(thirdPartyCookiesEnabled);
 
-                        Snackbar.make(findViewById(R.id.mainWebView), R.string.third_party_cookies_enabled, Snackbar.LENGTH_SHORT).show();
-                    }
+                    // Apply the new cookie status.
+                    cookieManager.setAcceptThirdPartyCookies(mainWebView, thirdPartyCookiesEnabled);
+
+                    // Reload the WebView.
+                    mainWebView.reload();
                 } // Else do nothing because SDK < 21.
                 return true;
 
             case R.id.toggleDomStorage:
-                if (domStorageEnabled) {
-                    domStorageEnabled = false;
-                    menuItem.setChecked(false);
-                    mainWebView.getSettings().setDomStorageEnabled(false);
-                    mainWebView.reload();
+                // Switch the status of domStorageEnabled.
+                domStorageEnabled = !domStorageEnabled;
 
-                    // Update the toggleJavaScript icon if appropriate and display a snackbar.
-                    if (!javaScriptEnabled) {
-                        if (firstPartyCookiesEnabled) {
-                            toggleJavaScript.setIcon(R.drawable.warning);
-                            Snackbar.make(findViewById(R.id.mainWebView), R.string.dom_storage_disabled, Snackbar.LENGTH_SHORT).show();
-                        } else {
-                            toggleJavaScript.setIcon(R.drawable.privacy_mode);
-                            Snackbar.make(findViewById(R.id.mainWebView), R.string.privacy_mode, Snackbar.LENGTH_SHORT).show();
-                        }
-                    }else {
-                        Snackbar.make(findViewById(R.id.mainWebView), R.string.dom_storage_disabled, Snackbar.LENGTH_SHORT).show();
-                    }
-                } else {
-                    domStorageEnabled = true;
-                    menuItem.setChecked(true);
-                    mainWebView.getSettings().setDomStorageEnabled(true);
-                    mainWebView.reload();
+                // Update the menu checkbox.
+                menuItem.setChecked(domStorageEnabled);
 
-                    // Update the toggleJavaScript icon if appropriate.
-                    if (!javaScriptEnabled) {
-                        toggleJavaScript.setIcon(R.drawable.warning);
-                    } // Else Do nothing because JavaScript is enabled.
+                // Apply the new DOM Storage status.
+                mainWebView.getSettings().setDomStorageEnabled(domStorageEnabled);
 
-                    Snackbar.make(findViewById(R.id.mainWebView), R.string.dom_storage_enabled, Snackbar.LENGTH_SHORT).show();
-                }
+                // Update the privacy icon.
+                updatePrivacyIcon();
+
+                // Reload the WebView.
+                mainWebView.reload();
                 return true;
 
             case R.id.clearCookies:
@@ -618,8 +605,10 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
 
             case R.id.refresh:
                 mainWebView.reload();
+                return true;
 
             default:
+                // Don't consume the event.
                 return super.onOptionsItemSelected(menuItem);
         }
     }
@@ -795,17 +784,9 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
 
             // Use the correct search URL based on javaScriptEnabled.
             if (javaScriptEnabled) {
-                if (javaScriptEnabledSearchURL.equals("Custom URL")) {
-                    formattedUrlString = javaScriptEnabledSearchCustomURL + encodedUrlString;
-                } else {
-                    formattedUrlString = javaScriptEnabledSearchURL + encodedUrlString;
-                }
+                formattedUrlString = javaScriptEnabledSearchURL + encodedUrlString;
             } else { // JavaScript is disabled.
-                if (javaScriptDisabledSearchURL.equals("Custom URL")) {
-                    formattedUrlString = javaScriptDisabledSearchCustomURL + encodedUrlString;
-                } else {
-                    formattedUrlString = javaScriptDisabledSearchURL + encodedUrlString;
-                }
+                formattedUrlString = javaScriptDisabledSearchURL + encodedUrlString;
             }
         }
 
@@ -815,4 +796,16 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
         InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
         inputMethodManager.hideSoftInputFromWindow(mainWebView.getWindowToken(), 0);
     }
+
+    private void updatePrivacyIcon() {
+        if (javaScriptEnabled) {
+            privacyIcon.setIcon(R.drawable.javascript_enabled);
+        } else {
+            if (domStorageEnabled || firstPartyCookiesEnabled) {
+                privacyIcon.setIcon(R.drawable.warning);
+            } else {
+                privacyIcon.setIcon(R.drawable.privacy_mode);
+            }
+        }
+    }
 }