]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/MainWebViewActivity.java
Create a blank navigation drawer.
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / MainWebViewActivity.java
index 61b208a84b589b13e7142d7911050aeaa9d73aa8..96f49b5b22463dc81f3c66cb6c184dab06cb4ea0 100644 (file)
@@ -20,7 +20,6 @@
 package com.stoutner.privacybrowser;
 
 import android.annotation.SuppressLint;
-import android.annotation.TargetApi;
 import android.app.Activity;
 import android.app.DownloadManager;
 import android.content.Intent;
@@ -32,8 +31,10 @@ 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.DrawerLayout;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.app.ActionBar;
+import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.app.AppCompatDialogFragment;
 import android.support.v7.widget.Toolbar;
@@ -53,7 +54,6 @@ import android.widget.EditText;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
-import android.widget.Toast;
 
 import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
@@ -67,6 +67,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
     // mainWebView is public static so it can be accessed from AboutDialog.  It is also used in onCreate(), onOptionsItemSelected(), and loadUrlFromTextBox().
     public static WebView mainWebView;
 
+    // DrawerTottle is use in onCrate() and onPostCreate().
+    private ActionBarDrawerToggle drawerToggle;
     // mainMenu is used in onCreateOptionsMenu() and onOptionsItemSelected().
     private Menu mainMenu;
     // formattedUrlString is used in onCreate(), onOptionsItemSelected(), onCreateHomeScreenShortcutCreate(), and loadUrlFromTextBox().
@@ -96,7 +98,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
     @SuppressLint("SetJavaScriptEnabled")
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_webview);
+        setContentView(R.layout.coordinator_layout);
 
         // We need to use the SupportActionBar from android.support.v7.app.ActionBar until the minimum API is >= 21.
         Toolbar supportAppBar = (Toolbar) findViewById(R.id.appBar);
@@ -149,6 +151,9 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
             });
         }
 
+        DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
+        drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, supportAppBar, R.string.open_navigation, R.string.close_navigation);
+
         mainWebView.setWebViewClient(new WebViewClient() {
             // shouldOverrideUrlLoading makes this WebView the default handler for URLs inside the app, so that links are not kicked out to other apps.
             @Override
@@ -167,7 +172,11 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
             @Override
             public void onPageFinished(WebView view, String url) {
                 formattedUrlString = url;
-                urlTextBox.setText(formattedUrlString);
+
+                // Only update urlTextBox if the user is not typing in it.
+                if (!urlTextBox.hasFocus()) {
+                    urlTextBox.setText(formattedUrlString);
+                }
             }
         });
 
@@ -226,9 +235,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                 */
 
                 // Set the one flag supported by API >= 14.
-                if (Build.VERSION.SDK_INT >= 14) {
-                    view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
-                }
+                view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
 
                 // Set the two flags that are supported by API >= 16.
                 if (Build.VERSION.SDK_INT >= 16) {
@@ -270,11 +277,10 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
                 // Add the URL as the description for the download.
                 requestUri.setDescription(url);
 
-                // Show the download notification after the download is completed if the API is 11 or greater.
-                if (Build.VERSION.SDK_INT >= 11) {
-                    requestUri.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
-                }
+                // Show the download notification after the download is completed.
+                requestUri.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
 
+                // Initiate the download and display a Snackbar.
                 downloadManager.enqueue(requestUri);
                 Snackbar.make(findViewById(R.id.mainWebView), R.string.download_started, Snackbar.LENGTH_SHORT).show();
             }
@@ -283,10 +289,8 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
         // Allow pinch to zoom.
         mainWebView.getSettings().setBuiltInZoomControls(true);
 
-        // Hide zoom controls if the API is 11 or greater.
-        if (Build.VERSION.SDK_INT >= 11) {
-            mainWebView.getSettings().setDisplayZoomControls(false);
-        }
+        // Hide zoom controls.
+        mainWebView.getSettings().setDisplayZoomControls(false);
 
         // Initialize the default preference values the first time the program is run.
         PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
@@ -414,8 +418,6 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
     }
 
     @Override
-    // @TargetApi(11) turns off the errors regarding copy and paste, which are removed from view in menu_webview.xml for lower version of Android.
-    @TargetApi(11)
     // Remove Android Studio's warning about the dangers of using SetJavaScriptEnabled.
     @SuppressLint("SetJavaScriptEnabled")
     // removeAllCookies is deprecated, but it is required for API < 21.
@@ -632,6 +634,14 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateHome
         }
     }
 
+    @Override
+    public void onPostCreate(Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+
+        // Sync the state of the DrawerToggle after onRestoreInstanceState has finished.
+        drawerToggle.syncState();
+    }
+
     @Override
     public void onCreateHomeScreenShortcutCancel(DialogFragment dialog) {
         // Do nothing because the user selected "Cancel".