another round of UI refresh
  moved buttons in the url bar
  fixed selected tab visuals (activated)

Change-Id: Ib69f9ca68b3d8cc8dfe6856f7248f21267127ae8
diff --git a/res/drawable-hdpi/ic_clear_search.png b/res/drawable-hdpi/ic_clear_search.png
new file mode 100644
index 0000000..e8e67b4
--- /dev/null
+++ b/res/drawable-hdpi/ic_clear_search.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_favorite_off_normal.png b/res/drawable-hdpi/ic_favorite_off_normal.png
new file mode 100644
index 0000000..4741464
--- /dev/null
+++ b/res/drawable-hdpi/ic_favorite_off_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_go_normal_white.png b/res/drawable-hdpi/ic_go_normal_white.png
new file mode 100644
index 0000000..1ae9ed9
--- /dev/null
+++ b/res/drawable-hdpi/ic_go_normal_white.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_web_white.png b/res/drawable-hdpi/ic_web_white.png
new file mode 100644
index 0000000..fec99ca
--- /dev/null
+++ b/res/drawable-hdpi/ic_web_white.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_clear_search.png b/res/drawable-mdpi/ic_clear_search.png
new file mode 100644
index 0000000..e8e67b4
--- /dev/null
+++ b/res/drawable-mdpi/ic_clear_search.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_favorite_off_normal.png b/res/drawable-mdpi/ic_favorite_off_normal.png
new file mode 100644
index 0000000..4741464
--- /dev/null
+++ b/res/drawable-mdpi/ic_favorite_off_normal.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_go_normal_white.png b/res/drawable-mdpi/ic_go_normal_white.png
new file mode 100644
index 0000000..1ae9ed9
--- /dev/null
+++ b/res/drawable-mdpi/ic_go_normal_white.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_web_white.png b/res/drawable-mdpi/ic_web_white.png
new file mode 100644
index 0000000..fec99ca
--- /dev/null
+++ b/res/drawable-mdpi/ic_web_white.png
Binary files differ
diff --git a/res/drawable/tab_background.xml b/res/drawable/tab_background.xml
index 8e1881e..6fc3ee3 100644
--- a/res/drawable/tab_background.xml
+++ b/res/drawable/tab_background.xml
@@ -17,10 +17,10 @@
 <selector
     xmlns:android="http://schemas.android.com/apk/res/android">
     <item
-        android:state_selected="true"
+        android:state_activated="true"
         android:drawable="@drawable/tab_selected_bg" />
     <item
-        android:state_selected="false"
+        android:state_activated="false"
         android:drawable="@drawable/tab_unselected_bg">
     </item>
 </selector>
diff --git a/res/layout/url_bar.xml b/res/layout/url_bar.xml
index b803881..e85ad83 100644
--- a/res/layout/url_bar.xml
+++ b/res/layout/url_bar.xml
@@ -21,8 +21,7 @@
         android:layout_width="match_parent"
         android:layout_height="48dip"
         android:orientation="horizontal"
-        android:background="@drawable/urlbar_bg"
-        >
+        android:background="@drawable/urlbar_bg">
         <ImageButton
             android:id="@+id/back"
             android:src="@drawable/ic_back_normal"
@@ -45,28 +44,19 @@
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:src="@drawable/ic_stop_normal" />
-        <ImageButton
-            android:id="@+id/all_btn"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:scaleType="center"
-            style="@style/HoloButton"
-            android:background="@drawable/browserbarbutton"
-            android:src="@drawable/ic_bookmarks_history_normal" />
         <LinearLayout
             android:id="@+id/urlbar_unfocused"
             android:layout_width="0dip"
             android:layout_height="match_parent"
             android:layout_weight="1.0"
             android:background="@null"
-            android:orientation="horizontal" >
-            <ImageButton
-                android:id="@+id/star"
-                android:src="@drawable/ic_favorite_on_normal"
+            android:orientation="horizontal">
+            <ImageView
+                android:id="@+id/browsericon"
+                android:src="@drawable/ic_web_white"
                 android:layout_width="wrap_content"
                 android:layout_height="match_parent"
-                style="@style/HoloButton"
-                android:background="@drawable/browserbarbutton" />
+                style="@style/HoloButton" />
             <ImageView
                 android:id="@+id/lock"
                 android:layout_width="wrap_content"
@@ -90,11 +80,10 @@
                 android:inputType="textUri"
                 android:imeOptions="actionGo" />
             <ImageButton
-                android:id="@+id/search"
-                android:src="@drawable/ic_search_normal"
+                android:id="@+id/star"
+                android:src="@drawable/ic_favorite_off_normal"
                 android:layout_width="wrap_content"
                 android:layout_height="match_parent"
-                android:gravity="center_vertical"
                 style="@style/HoloButton"
                 android:background="@drawable/browserbarbutton" />
         </LinearLayout>
@@ -105,8 +94,7 @@
             android:layout_weight="1.0"
             android:orientation="horizontal"
             android:background="@drawable/text_field_results"
-            android:visibility="gone"
-             >
+            android:visibility="gone">
             <ImageView
                 android:id="@+id/searchicon"
                 android:src="@drawable/ic_search_category_suggest"
@@ -129,22 +117,45 @@
                 android:scrollHorizontally="true"
                 android:inputType="textUri"
                 android:imeOptions="actionGo" />
-            <ImageButton
-                android:id="@+id/go"
-                android:src="@drawable/ic_go_dark"
+            <ImageView
+                android:id="@+id/clear"
+                android:src="@drawable/ic_clear_search"
                 android:layout_width="wrap_content"
                 android:layout_height="match_parent"
-                android:gravity="center_vertical"
-                style="@style/HoloButton"
-                android:background="@drawable/browserbarbutton" />
+                style="@style/HoloButton" />
         </LinearLayout>
+        <ImageButton
+            android:id="@+id/go"
+            android:src="@drawable/ic_go_normal_white"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:visibility="gone"
+            android:gravity="center_vertical"
+            style="@style/HoloButton"
+            android:background="@drawable/browserbarbutton" />
+        <ImageButton
+            android:id="@+id/search"
+            android:src="@drawable/ic_search_normal"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center_vertical"
+            style="@style/HoloButton"
+            android:background="@drawable/browserbarbutton" />
+        <ImageButton
+            android:id="@+id/all_btn"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:scaleType="center"
+            style="@style/HoloButton"
+            android:background="@drawable/browserbarbutton"
+            android:src="@drawable/ic_bookmarks_history_normal" />
     </LinearLayout>
     <com.android.browser.PageProgressView
         android:id="@+id/progress"
         android:layout_width="match_parent"
         android:layout_height="22dip"
-        android:background = "@null"
-        android:src = "@drawable/progress"
+        android:background="@null"
+        android:src="@drawable/progress"
         android:layout_marginTop="-11dip"
         android:visibility="gone" />
 </LinearLayout>
diff --git a/src/com/android/browser/PageProgressView.java b/src/com/android/browser/PageProgressView.java
index 183566a..f512cef 100644
--- a/src/com/android/browser/PageProgressView.java
+++ b/src/com/android/browser/PageProgressView.java
@@ -20,6 +20,8 @@
 import android.graphics.Canvas;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
+import android.os.Handler;
+import android.os.Message;
 import android.util.AttributeSet;
 import android.widget.ImageView;
 
@@ -28,9 +30,16 @@
  */
 public class PageProgressView extends ImageView {
 
-    private int mProgress;
-    private int mMaxProgress;
+    public static final int MAX_PROGRESS = 10000;
+    private static final int MSG_UPDATE = 42;
+    private static final int STEPS = 10;
+    private static final int DELAY = 40;
+
+    private int mCurrentProgress;
+    private int mTargetProgress;
+    private int mIncrement;
     private Rect mBounds;
+    private Handler mHandler;
 
     /**
      * @param context
@@ -60,27 +69,41 @@
     }
 
     private void init(Context ctx) {
-        mMaxProgress = 10000;
         mBounds = new Rect(0,0,0,0);
-        mProgress = 0;
+        mCurrentProgress = 0;
+        mTargetProgress = 0;
+        mHandler = new Handler() {
+
+            @Override
+            public void handleMessage(Message msg) {
+                if (msg.what == MSG_UPDATE) {
+                    mCurrentProgress = Math.min(mTargetProgress,
+                            mCurrentProgress + mIncrement);
+                    mBounds.right = getWidth() * mCurrentProgress / MAX_PROGRESS;
+                    invalidate();
+                    if (mCurrentProgress < mTargetProgress) {
+                        sendMessageDelayed(mHandler.obtainMessage(MSG_UPDATE), DELAY);
+                    }
+                }
+            }
+
+        };
     }
 
     @Override
     public void onLayout(boolean f, int l, int t, int r, int b) {
         mBounds.left = 0;
-        mBounds.right = (r - l) * mProgress / mMaxProgress;
+        mBounds.right = (r - l) * mCurrentProgress / MAX_PROGRESS;
         mBounds.top = 0;
         mBounds.bottom = b-t;
     }
 
-    void setMaxProgress(int max) {
-        mMaxProgress = max;
-    }
-
     void setProgress(int progress) {
-        mProgress = progress;
-        mBounds.right = getWidth()*mProgress/mMaxProgress;
-        invalidate();
+        mCurrentProgress = mTargetProgress;
+        mTargetProgress = progress;
+        mIncrement = (mTargetProgress - mCurrentProgress) / STEPS;
+        mHandler.removeMessages(MSG_UPDATE);
+        mHandler.sendEmptyMessage(MSG_UPDATE);
     }
 
     @Override
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java
index cf0f27c..4c8ab26 100644
--- a/src/com/android/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -250,14 +250,14 @@
         }
 
         @Override
-        public void setSelected(boolean selected) {
+        public void setActivated(boolean selected) {
             mSelected = selected;
             mClose.setVisibility(mSelected ? View.VISIBLE : View.GONE);
             mTitle.setTextAppearance(mBrowserActivity, mSelected ?
                     R.style.TabTitleSelected : R.style.TabTitleUnselected);
             setHorizontalFadingEdgeEnabled(!mSelected);
             setFadingEdgeLength(50);
-            super.setSelected(selected);
+            super.setActivated(selected);
             setLayoutParams(new LayoutParams(selected ?
                     mTabWidthSelected : mTabWidthUnselected,
                     LayoutParams.MATCH_PARENT));
diff --git a/src/com/android/browser/TabScrollView.java b/src/com/android/browser/TabScrollView.java
index b411416..435362d 100644
--- a/src/com/android/browser/TabScrollView.java
+++ b/src/com/android/browser/TabScrollView.java
@@ -80,12 +80,12 @@
     void setSelectedTab(int position) {
         View v = getSelectedTab();
         if (v != null) {
-            v.setSelected(false);
+            v.setActivated(false);
         }
         mSelected = position;
         v = getSelectedTab();
         if (v != null) {
-            v.setSelected(true);
+            v.setActivated(true);
         }
         requestLayout();
     }
@@ -104,12 +104,12 @@
 
     void addTab(View tab) {
         mContentView.addView(tab);
-        tab.setSelected(false);
+        tab.setActivated(false);
     }
 
     void addTab(View tab, int pos) {
         mContentView.addView(tab, pos);
-        tab.setSelected(false);
+        tab.setActivated(false);
     }
 
     void removeTab(View tab) {
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index da39307..b652e15 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -57,6 +57,7 @@
     private View mGoButton;
     private ImageView mStopButton;
     private View mAllButton;
+    private View mClearButton;
     private PageProgressView mProgressView;
     private UrlInputView mUrlFocused;
     private TextView mUrlUnfocused;
@@ -88,6 +89,7 @@
         mSearchButton = findViewById(R.id.search);
         mLockIcon = (ImageView) findViewById(R.id.lock);
         mGoButton = findViewById(R.id.go);
+        mClearButton = findViewById(R.id.clear);
         mProgressView = (PageProgressView) findViewById(R.id.progress);
         mFocusContainer = findViewById(R.id.urlbar_focused);
         mUnfocusContainer = findViewById(R.id.urlbar_unfocused);
@@ -99,14 +101,15 @@
         mStopButton.setOnClickListener(this);
         mSearchButton.setOnClickListener(this);
         mGoButton.setOnClickListener(this);
+        mClearButton.setOnClickListener(this);
         mUrlFocused.setUrlInputListener(this);
         mUrlUnfocused.setOnFocusChangeListener(this);
         mUrlFocused.setContainer(mFocusContainer);
     }
-    
+
     public void onFocusChange(View v, boolean hasFocus) {
         if (hasFocus) {
-            swapUrlContainer(true);
+            setUrlMode(true);
             mUrlFocused.selectAll();
             mUrlFocused.requestFocus();
             mUrlFocused.setDropDownWidth(mUnfocusContainer.getWidth());
@@ -132,6 +135,8 @@
             if (!TextUtils.isEmpty(mUrlFocused.getText())) {
                 onAction(mUrlFocused.getText().toString());
             }
+        } else if (mClearButton == v) {
+            mUrlFocused.setText("");
         }
     }
 
@@ -152,7 +157,7 @@
         i.setAction(Intent.ACTION_SEARCH);
         i.putExtra(SearchManager.QUERY, text);
         mBrowserActivity.onNewIntent(i);
-        swapUrlContainer(false);
+        setUrlMode(false);
         setDisplayTitle(text);
     }
 
@@ -160,8 +165,8 @@
     public void onDismiss() {
         mBrowserActivity.getTabControl().getCurrentTopWebView().requestFocus();
         mBrowserActivity.hideFakeTitleBar();
+        setUrlMode(false);
         setDisplayTitle(mBrowserActivity.getTabControl().getCurrentWebView().getUrl());
-        swapUrlContainer(false);
     }
 
     @Override
@@ -172,6 +177,17 @@
         }
     }
 
+    private void setUrlMode(boolean focused) {
+        swapUrlContainer(focused);
+        if (focused) {
+            mSearchButton.setVisibility(View.GONE);
+            mGoButton.setVisibility(View.VISIBLE);
+        } else {
+            mSearchButton.setVisibility(View.VISIBLE);
+            mGoButton.setVisibility(View.GONE);
+        }
+    }
+
     private void swapUrlContainer(boolean focus) {
         mUnfocusContainer.setVisibility(focus ? View.GONE : View.VISIBLE);
         mFocusContainer.setVisibility(focus ? View.VISIBLE : View.GONE);
@@ -203,6 +219,7 @@
     @Override
     void setProgress(int newProgress) {
         if (newProgress >= PROGRESS_MAX) {
+            mProgressView.setProgress(PageProgressView.MAX_PROGRESS);
             mProgressView.setVisibility(View.GONE);
             mInLoad = false;
             mStopButton.setImageDrawable(mReloadDrawable);
@@ -212,7 +229,8 @@
                 mInLoad = true;
                 mStopButton.setImageDrawable(mStopDrawable);
             }
-            mProgressView.setProgress(newProgress*10000/PROGRESS_MAX);
+            mProgressView.setProgress(newProgress * PageProgressView.MAX_PROGRESS
+                    / PROGRESS_MAX);
         }
     }