Add a menu item to toggle DOM Storage.
authorSoren Stoutner <soren@stoutner.com>
Wed, 27 Jan 2016 20:54:51 +0000 (13:54 -0700)
committerSoren Stoutner <soren@stoutner.com>
Wed, 27 Jan 2016 20:54:51 +0000 (13:54 -0700)
app/src/main/assets/about_text.html
app/src/main/java/com/stoutner/privacybrowser/Webview.java
app/src/main/res/menu/menu_webview.xml
app/src/main/res/values/strings.xml

index 1d2a5ffd7b87f0968eaf5e2585b923c246f1901e..ac8865e0ffeb2304131381f8ab86e2291cd6dda7 100644 (file)
@@ -1,6 +1,6 @@
 <html>
 <body>
-<p>Privacy Browser Copyright &copy; 2015 <a href="mailto:soren@stoutner.com">Soren Stoutner</a></p>
+<p>Privacy Browser Copyright &copy; 2015-2016 <a href="mailto:soren@stoutner.com">Soren Stoutner</a></p>
 
 <p>Detailed information about Privacy Browser, including changelogs and a bug tracker, is available at <a href=https://privacybrowser.stoutner.com>privacybrowser.stoutner.com</a>.</p>
 
index 138a35b0190494d151692b85f2f5b4de6989a0ae..a1eb26be2f675c78012256a6dde4dca3a796f18f 100644 (file)
@@ -65,8 +65,10 @@ public class Webview extends AppCompatActivity implements CreateHomeScreenShortc
     private String formattedUrlString;
     // homepage is used in onCreate and onOptionsItemSelected.
     private String homepage = "https://www.duckduckgo.com/";
-    // enableJavaScript is used onCreate and onOptionsItemSelected.
+    // enableJavaScript is used in onCreate and onOptionsItemSelected.
     private boolean enableJavaScript;
+    // enableDomStorage is used in onCreate and onOptionsItemSelected.
+    private boolean enableDomStorage;
     // actionBar is used in onCreate and onOptionsItemSelected.
     private ActionBar actionBar;
 
@@ -255,14 +257,11 @@ public class Webview extends AppCompatActivity implements CreateHomeScreenShortc
 
         // Set JavaScript initial status.
         enableJavaScript = true;
-        if (enableJavaScript) {
-            mainWebView.getSettings().setJavaScriptEnabled(true);
-        } else {
-            mainWebView.getSettings().setJavaScriptEnabled(false);
-        }
+        mainWebView.getSettings().setJavaScriptEnabled(enableJavaScript);
 
-        // Enable DOM Storage.
-        mainWebView.getSettings().setDomStorageEnabled(true);
+        // Set DOM Storage initial status.
+        enableDomStorage = true;
+        mainWebView.getSettings().setDomStorageEnabled(enableDomStorage);
 
         // Get the intent information that started the app.
         final Intent intent = getIntent();
@@ -287,13 +286,13 @@ public class Webview extends AppCompatActivity implements CreateHomeScreenShortc
         // Inflate the menu; this adds items to the action bar if it is present.
         getMenuInflater().inflate(R.menu.menu_webview, menu);
         MenuItem toggleJavaScriptMenuItem = menu.findItem(R.id.toggleJavaScript);
+        MenuItem toggleDomStorageMenuItem = menu.findItem(R.id.toggleDomStorage);
 
         // Set the JavaScript menu item checkbox initial status.
-        if (enableJavaScript) {
-            toggleJavaScriptMenuItem.setChecked(true);
-        } else {
-            toggleJavaScriptMenuItem.setChecked(false);
-        }
+        toggleJavaScriptMenuItem.setChecked(enableJavaScript);
+
+        // Set the DOM Storage menu item checkbox initial status.
+        toggleDomStorageMenuItem.setChecked(enableDomStorage);
 
         return true;
     }
@@ -323,6 +322,20 @@ public class Webview extends AppCompatActivity implements CreateHomeScreenShortc
                 }
                 return true;
 
+            case R.id.toggleDomStorage:
+                if (enableDomStorage) {
+                    enableDomStorage = false;
+                    menuItem.setChecked(false);
+                    mainWebView.getSettings().setDomStorageEnabled(false);
+                    mainWebView.loadUrl(formattedUrlString);
+                } else {
+                    enableDomStorage = true;
+                    menuItem.setChecked(true);
+                    mainWebView.getSettings().setDomStorageEnabled(true);
+                    mainWebView.loadUrl(formattedUrlString);
+                }
+                return true;
+
             case R.id.home:
                 mainWebView.loadUrl(homepage);
                 return true;
index dbe206b17eaae3eb3f1446410bc687df29462dc8..84e1c75d01a4562d3237e4fd72c3cb6eb32cdecf 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-  Copyright 2015 Soren Stoutner <soren@stoutner.com>.
+  Copyright 2015-2016 Soren Stoutner <soren@stoutner.com>.
 
   This file is part of Privacy Browser <https://privacybrowser.stoutner.com/>.
 
         android:checkable="true"
         app:showAsAction="never" />
 
+
+    <item
+        android:id="@+id/toggleDomStorage"
+        android:title="@string/domStorage"
+        android:orderInCategory="2"
+        android:checkable="true"
+        app:showAsAction="never" />
+
     <item
         android:id="@+id/home"
         android:title="@string/home"
index 993c43d23915dbfaab3a529153bbcf6ea8386c95..879cef1b59ac6210e3fb3d3cbc2bfabe9520dbdf 100644 (file)
@@ -25,6 +25,7 @@
 
     <!-- Menu. -->
     <string name="javaScript">JavaScript</string>
+    <string name="domStorage">DOM Storage</string>
     <string name="home">Home</string>
     <string name="refresh">Refresh</string>
     <string name="back">Back</string>