new iteration of the navigation UI

    use live webviews

Change-Id: Ie787c76470e445548d358374f83f33a1b0b0b5cf
diff --git a/src/com/android/browser/TitleBarPhone.java b/src/com/android/browser/TitleBarPhone.java
index 9242f99..97fe747 100644
--- a/src/com/android/browser/TitleBarPhone.java
+++ b/src/com/android/browser/TitleBarPhone.java
@@ -20,12 +20,16 @@
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
 import android.view.ContextMenu;
 import android.view.MenuInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.View.OnFocusChangeListener;
+import android.webkit.WebView;
 import android.widget.FrameLayout;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 
 import java.util.List;
@@ -41,6 +45,9 @@
     private ImageView mStopButton;
     private ImageView mVoiceButton;
     private boolean mHasLockIcon;
+    private ImageButton mForward;
+    private Drawable mStopDrawable;
+    private Drawable mRefreshDrawable;
 
     public TitleBarPhone(Activity activity, UiController controller, PhoneUi ui,
             FrameLayout parent) {
@@ -58,7 +65,12 @@
         mStopButton.setOnClickListener(this);
         mVoiceButton = (ImageView) findViewById(R.id.voice);
         mVoiceButton.setOnClickListener(this);
+        mForward = (ImageButton) findViewById(R.id.forward);
+        mForward.setOnClickListener(this);
         setFocusState(false);
+        Resources res = context.getResources();
+        mStopDrawable = res.getDrawable(R.drawable.ic_stop_holo_dark);
+        mRefreshDrawable = res.getDrawable(R.drawable.ic_refresh_holo_dark);
     }
 
     @Override
@@ -91,11 +103,7 @@
             mVoiceButton.setVisibility(View.VISIBLE);
         } else {
             mLockIcon.setVisibility(mHasLockIcon ? View.VISIBLE : View.GONE);
-            if (mInLoad) {
-                mStopButton.setVisibility(View.VISIBLE);
-            } else {
-                mStopButton.setVisibility(View.GONE);
-            }
+            mStopButton.setVisibility(View.VISIBLE);
             mVoiceButton.setVisibility(View.GONE);
         }
     }
@@ -110,6 +118,17 @@
         setFocusState(mUrlInput.hasFocus());
     }
 
+    @Override
+    void setProgress(int progress) {
+        super.setProgress(progress);
+        if (progress == 100) {
+            mStopButton.setImageDrawable(mRefreshDrawable);
+        } else if (mStopButton.getDrawable() != mStopDrawable) {
+            mStopButton.setImageDrawable(mStopDrawable);
+        }
+        updateNavigationState();
+    }
+
     /**
      * Update the text displayed in the title bar.
      * @param title String to display.  If null, the new tab string will be
@@ -122,6 +141,8 @@
         } else {
             mUrlInput.setText(title);
         }
+        mUrlInput.setSelection(0);
+        updateNavigationState();
     }
 
     @Override
@@ -140,12 +161,31 @@
     @Override
     public void onClick(View v) {
         if (v == mStopButton) {
-            mUiController.stopLoading();
+            if (mInLoad) {
+                mUiController.stopLoading();
+            } else {
+                WebView web = mBaseUi.getWebView();
+                if (web != null) {
+                    web.reload();
+                }
+            }
         } else if (v == mVoiceButton) {
             mUiController.startVoiceSearch();
+        } else if (v == mForward) {
+            WebView web = mBaseUi.getWebView();
+            if (web != null) {
+                web.goForward();
+            }
         } else {
             super.onClick(v);
         }
     }
 
+    private void updateNavigationState() {
+        WebView web = mBaseUi.getWebView();
+        if (web != null) {
+          mForward.setVisibility(web.canGoForward() ? View.VISIBLE : View.GONE);
+        }
+    }
+
 }