]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/Webview.java
Begin working on the favorite icon.
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / Webview.java
index c75c35766ca9fcadd4882fc025c38a1330afa990..f920efa4f6f0d99d28b8304c8cf7df0eb083bb76 100644 (file)
@@ -2,9 +2,13 @@ package com.stoutner.privacybrowser;
 
 import android.app.Activity;
 import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
 import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.util.Patterns;
 import android.view.KeyEvent;
@@ -29,6 +33,7 @@ public class Webview extends AppCompatActivity {
     static WebView mainWebView;
     static ProgressBar progressBar;
     static SwipeRefreshLayout swipeToRefresh;
+    static EditText urlTextBox;
     static final String homepage = "https://www.duckduckgo.com";
 
     @Override
@@ -36,11 +41,17 @@ public class Webview extends AppCompatActivity {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_webview);
 
-        final EditText urlTextBox = (EditText) findViewById(R.id.urlTextBox);
+        urlTextBox = (EditText) findViewById(R.id.urlTextBox);
         swipeToRefresh = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayoutContainer);
         mainWebView = (WebView) findViewById(R.id.mainWebView);
         progressBar = (ProgressBar) findViewById(R.id.progressBar);
 
+        final ActionBar actionBar = getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayShowTitleEnabled(false);
+            // actionBar.setHideOnContentScrollEnabled(true);
+        }
+
         // Implement swipe down to refresh.
         swipeToRefresh.setColorSchemeColors(0xFF0097FF);
         swipeToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@@ -81,8 +92,18 @@ public class Webview extends AppCompatActivity {
                     progressBar.setVisibility(View.VISIBLE);
                 } else {
                     progressBar.setVisibility(View.GONE);
+
                     // Stop the refreshing indicator if it is running.
                     swipeToRefresh.setRefreshing(false);
+
+                    // Update the URL in urlTextBox.  It is necessary to do this after the page finishes loading to get the final URL, which can change during load.
+                    formattedUrlString = mainWebView.getUrl();
+                    urlTextBox.setText(formattedUrlString);
+
+                    // Set the favorite icon
+                    Bitmap favoriteIconBitmap = mainWebView.getFavicon();
+                    Drawable favoriteIconDrawable = new BitmapDrawable(getResources(), favoriteIconBitmap);
+                    // TODO Display the favorite icon.
                 }
             }
         });
@@ -148,18 +169,29 @@ public class Webview extends AppCompatActivity {
     @Override
     public boolean onOptionsItemSelected(MenuItem menuItem) {
         int menuItemId = menuItem.getItemId();
-        final WebView mainWebView = (WebView) findViewById(R.id.mainWebView);
 
         // Sets the commands that relate to the menu entries.
         switch (menuItemId) {
             case R.id.home:
-                mainWebView.loadUrl(homepage);
+                formattedUrlString = homepage;
+                urlTextBox.setText(formattedUrlString);
+                mainWebView.loadUrl(formattedUrlString);
                 break;
+
             case R.id.back:
                 mainWebView.goBack();
+
+                // Update the URL in urlTextBox with the URL we are intending to load.  Because this can be altered during load, the final URL is loaded after the progress bar reaches 100%
+                formattedUrlString = mainWebView.getOriginalUrl();
+                urlTextBox.setText(formattedUrlString);
                 break;
+
             case R.id.forward:
                 mainWebView.goForward();
+
+                // Update the URL in urlTextBox with the URL we are intending to load.  Because this can be altered during load, the final URL is loaded after the progress bar reaches 100%
+                formattedUrlString = mainWebView.getOriginalUrl();
+                urlTextBox.setText(formattedUrlString);
                 break;
         }
 
@@ -171,6 +203,10 @@ public class Webview extends AppCompatActivity {
     public void onBackPressed() {
         if (mainWebView.canGoBack()) {
             mainWebView.goBack();
+
+            // Update the URL in urlTextBox with the URL we are intending to load.  Because this can be altered during load, the final URL is loaded after the progress bar reaches 100%
+            formattedUrlString = mainWebView.getOriginalUrl();
+            urlTextBox.setText(formattedUrlString);
         } else {
             super.onBackPressed();
         }
@@ -178,8 +214,6 @@ public class Webview extends AppCompatActivity {
 
     public void loadUrlFromTextBox(View view) throws UnsupportedEncodingException {
         // Get the text from urlTextInput and convert it to a string.
-        final EditText urlTextBox = (EditText) findViewById(R.id.urlTextBox);
-        final WebView mainWebView = (WebView) findViewById(R.id.mainWebView);
         String unformattedUrlString = urlTextBox.getText().toString();
         URL unformattedUrl = null;
         Uri.Builder formattedUri = new Uri.Builder();