]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java
Update Privacy Mode icons and convert toasts to snackbars.
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / MainWebViewActivity.java
index 757b2c87895b21b935d5c9f4b2e786b3881b01bb..61b208a84b589b13e7142d7911050aeaa9d73aa8 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * Copyright 2015-2016 Soren Stoutner <soren@stoutner.com>.
  *
- * This file is part of Privacy Browser.
+ * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
  *
  * Privacy Browser is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -30,6 +30,7 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
+import android.support.design.widget.Snackbar;
 import android.support.v4.app.DialogFragment;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.app.ActionBar;
@@ -54,9 +55,6 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.Toast;
 
-import com.google.android.gms.ads.AdRequest;
-import com.google.android.gms.ads.AdView;
-
 import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -105,12 +103,12 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
         setSupportActionBar(supportAppBar);
 
         final FrameLayout fullScreenVideoFrameLayout = (FrameLayout) findViewById(R.id.fullScreenVideoFrameLayout);
-        final Activity mainWebViewActivity = this;
+
         // We need to use the SupportActionBar from android.support.v7.app.ActionBar until the minimum API is >= 21.
         final ActionBar appBar = getSupportActionBar();
 
-        // Setup the AdView for the free flavor.
-        final AdView adView = (AdView) findViewById(R.id.adView);
+        // Setup AdView for the free flavor.
+        final View adView = findViewById(R.id.adView);
 
         // Implement swipe to refresh
         final SwipeRefreshLayout swipeToRefresh = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
@@ -159,12 +157,6 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                 return true;
             }
 
-            /* These errors do not provide any useful information and clutter the screen.
-            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
-                Toast.makeText(mainWebViewActivity, "Error loading " + request + "   Error: " + error, Toast.LENGTH_SHORT).show();
-            }
-            */
-
             // Update the URL in urlTextBox when the page starts to load.
             @Override
             public void onPageStarted(WebView view, String url, Bitmap favicon) {
@@ -225,10 +217,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                 // Hide the mainWebView.
                 mainWebView.setVisibility(View.GONE);
 
-                // Hide the add if this is the free flavor.
-                if (getString(R.string.free_flavor).equals("true")) {
-                    adView.setVisibility(View.GONE);
-                }
+                // Hide the ad if this is the free flavor.
+                BannerAd.hideAd(adView);
 
                 /* SYSTEM_UI_FLAG_HIDE_NAVIGATION hides the navigation bars on the bottom or right of the screen.
                 ** SYSTEM_UI_FLAG_FULLSCREEN hides the status bar across the top of the screen.
@@ -260,10 +250,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                 // Show the mainWebView.
                 mainWebView.setVisibility(View.VISIBLE);
 
-                // Show the adView if this is the free flavor.
-                if (getString(R.string.free_flavor).equals("true")) {
-                    adView.setVisibility(View.VISIBLE);
-                }
+                // Show the ad if this is the free flavor.
+                BannerAd.showAd(adView);
 
                 // Hide the fullScreenVideoFrameLayout.
                 fullScreenVideoFrameLayout.removeAllViews();
@@ -288,7 +276,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                 }
 
                 downloadManager.enqueue(requestUri);
-                Toast.makeText(mainWebViewActivity, "Download started", Toast.LENGTH_SHORT).show();
+                Snackbar.make(findViewById(R.id.mainWebView), R.string.download_started, Snackbar.LENGTH_SHORT).show();
             }
         });
 
@@ -325,7 +313,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
         cookieManager = CookieManager.getInstance();
         cookieManager.setAcceptCookie(cookiesEnabled);
 
-        // Set hompage initial status.
+        // Set homepage initial status.
         homepage = savedPreferences.getString("homepage", "https://www.duckduckgo.com");
 
         // Get the intent information that started the app.
@@ -346,10 +334,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
         mainWebView.loadUrl(formattedUrlString);
 
         // Load the ad if this is the free flavor.
-        if (getString(R.string.free_flavor).equals("true")) {
-            AdRequest adRequest = new AdRequest.Builder().build();
-            adView.loadAd(adRequest);
-        }
+        BannerAd.requestAd(adView);
     }
 
     @Override
@@ -449,28 +434,28 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                     mainWebView.getSettings().setJavaScriptEnabled(false);
                     mainWebView.reload();
 
-                    // Update the toggleJavaScript icon and display a toast message.
+                    // Update the toggleJavaScript icon and display a snackbar.
                     if (domStorageEnabled || cookiesEnabled) {
                         menuItem.setIcon(R.drawable.warning);
                         if (domStorageEnabled && cookiesEnabled) {
-                            Toast.makeText(getApplicationContext(), "JavaScript disabled, DOM Storage and Cookies still enabled", Toast.LENGTH_SHORT).show();
+                            Snackbar.make(findViewById(R.id.mainWebView), R.string.both_still_enabled, Snackbar.LENGTH_SHORT).show();
                         } else {
                             if (domStorageEnabled) {
-                                Toast.makeText(getApplicationContext(), "JavaScript disabled, DOM Storage still enabled", Toast.LENGTH_SHORT).show();
+                                Snackbar.make(findViewById(R.id.mainWebView), R.string.dom_storage_still_enabled, Snackbar.LENGTH_SHORT).show();
                             } else {
-                                Toast.makeText(getApplicationContext(), "JavaScript disabled, Cookies still enabled", Toast.LENGTH_SHORT).show();
+                                Snackbar.make(findViewById(R.id.mainWebView), R.string.cookies_still_enabled, Snackbar.LENGTH_SHORT).show();
                             }
                         }
                     } else {
                         menuItem.setIcon(R.drawable.privacy_mode);
-                        Toast.makeText(getApplicationContext(), R.string.privacy_mode, Toast.LENGTH_SHORT).show();
+                        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();
-                    Toast.makeText(getApplicationContext(), "JavaScript enabled", Toast.LENGTH_SHORT).show();
+                    Snackbar.make(findViewById(R.id.mainWebView), R.string.javascript_enabled, Snackbar.LENGTH_SHORT).show();
                 }
                 return true;
 
@@ -481,14 +466,14 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                     mainWebView.getSettings().setDomStorageEnabled(false);
                     mainWebView.reload();
 
-                    // Update the toggleJavaScript icon and display a toast message if appropriate.
+                    // Update the toggleJavaScript icon and display a snackbar if appropriate.
                     if (!javaScriptEnabled && !cookiesEnabled) {
                         toggleJavaScript.setIcon(R.drawable.privacy_mode);
-                        Toast.makeText(getApplicationContext(), R.string.privacy_mode, Toast.LENGTH_SHORT).show();
+                        Snackbar.make(findViewById(R.id.mainWebView), R.string.privacy_mode, Snackbar.LENGTH_SHORT).show();
                     } else {
                         if (cookiesEnabled) {
                             toggleJavaScript.setIcon(R.drawable.warning);
-                            Toast.makeText(getApplicationContext(), "Cookies still enabled", Toast.LENGTH_SHORT).show();
+                            Snackbar.make(findViewById(R.id.mainWebView), R.string.cookies_still_enabled, Snackbar.LENGTH_SHORT).show();
                         } // Else Do nothing because JavaScript is enabled.
                     }
                 } else {
@@ -502,7 +487,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                         toggleJavaScript.setIcon(R.drawable.warning);
                     } // Else Do nothing because JavaScript is enabled.
 
-                    Toast.makeText(getApplicationContext(), "DOM Storage enabled", Toast.LENGTH_SHORT).show();
+                    Snackbar.make(findViewById(R.id.mainWebView), R.string.dom_storage_enabled, Snackbar.LENGTH_SHORT).show();
                 }
                 return true;
 
@@ -529,14 +514,14 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                     cookieManager.setAcceptCookie(false);
                     mainWebView.reload();
 
-                    // Update the toggleJavaScript icon and display a toast message if appropriate.
+                    // Update the toggleJavaScript icon and display a snackbar if appropriate.
                     if (!javaScriptEnabled && !domStorageEnabled) {
                         toggleJavaScript.setIcon(R.drawable.privacy_mode);
-                        Toast.makeText(getApplicationContext(), R.string.privacy_mode, Toast.LENGTH_SHORT).show();
+                        Snackbar.make(findViewById(R.id.mainWebView), R.string.privacy_mode, Snackbar.LENGTH_SHORT).show();
                     } else {
                         if (domStorageEnabled) {
                             toggleJavaScript.setIcon(R.drawable.warning);
-                            Toast.makeText(getApplicationContext(), "DOM Storage still enabled", Toast.LENGTH_SHORT).show();
+                            Snackbar.make(findViewById(R.id.mainWebView), R.string.dom_storage_enabled, Snackbar.LENGTH_SHORT).show();
                         } // Else Do nothing because JavaScript is enabled.
                     }
                 } else {
@@ -550,14 +535,14 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                         toggleJavaScript.setIcon(R.drawable.warning);
                     } // Else Do nothing because JavaScript is enabled.
 
-                    Toast.makeText(getApplicationContext(), "Cookies enabled", Toast.LENGTH_SHORT).show();
+                    Snackbar.make(findViewById(R.id.mainWebView), R.string.cookies_enabled, Snackbar.LENGTH_SHORT).show();
                 }
                 return true;
 
             case R.id.clearDomStorage:
                 WebStorage webStorage = WebStorage.getInstance();
                 webStorage.deleteAllData();
-                Toast.makeText(getApplicationContext(), "DOM storage deleted", Toast.LENGTH_SHORT).show();
+                Snackbar.make(findViewById(R.id.mainWebView), R.string.dom_storage_deleted, Snackbar.LENGTH_SHORT).show();
                 return true;
 
             case R.id.clearCookies:
@@ -566,7 +551,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                 } else {
                     cookieManager.removeAllCookies(null);
                 }
-                Toast.makeText(getApplicationContext(), "Cookies deleted", Toast.LENGTH_SHORT).show();
+                Snackbar.make(findViewById(R.id.mainWebView), R.string.cookies_deleted, Snackbar.LENGTH_SHORT).show();
                 return true;
 
             case R.id.addToHomescreen:
@@ -579,12 +564,12 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
 
             case R.id.downloads:
                 // Launch the system Download Manager.
-                Intent downloadManangerIntent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS);
+                Intent downloadManagerIntent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS);
 
                 // Launch as a new task so that Download Manager and Privacy Browser show as separate windows in the recent tasks list.
-                downloadManangerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                downloadManagerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
-                startActivity(downloadManangerIntent);
+                startActivity(downloadManagerIntent);
                 return true;
 
             case R.id.home:
@@ -683,7 +668,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
         }
     }
 
-    public void loadUrlFromTextBox() throws UnsupportedEncodingException {
+    private void loadUrlFromTextBox() throws UnsupportedEncodingException {
         // Get the text from urlTextBox and convert it to a string.
         String unformattedUrlString = urlTextBox.getText().toString();
         URL unformattedUrl = null;