Merge change 3615

* changes:
  Updates to the browser's custom title bar.
diff --git a/res/drawable/background_titlebar.png b/res/drawable/background_titlebar.png
index 0d7c562..1fdb078 100644
--- a/res/drawable/background_titlebar.png
+++ b/res/drawable/background_titlebar.png
Binary files differ
diff --git a/res/drawable/button_line.xml b/res/drawable/button_line.xml
index 03b5d35..67869d0 100644
--- a/res/drawable/button_line.xml
+++ b/res/drawable/button_line.xml
@@ -16,13 +16,12 @@
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
     <item>
         <shape android:width="2dip">
-            <!-- Want it to have 90% alpha -->
-            <solid android:color="#ffdfdfdf"/>
+            <solid android:color="#ff000000"/>
         </shape>
     </item>
     <item android:left="1dip" android:width="1dip">
         <shape>
-            <solid android:color="#ffb6b6b6"/>
+            <solid android:color="#ffffffff"/>
         </shape>
     </item>
 </layer-list>
diff --git a/res/layout/custom_screen.xml b/res/layout/custom_screen.xml
new file mode 100644
index 0000000..95c8434
--- /dev/null
+++ b/res/layout/custom_screen.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    >
+    <com.android.browser.TitleBar android:id="@+id/title_bar"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        />
+    <FrameLayout android:id="@+id/main_content"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:foreground="?android:attr/windowContentOverlay"
+        />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/title_bar.xml b/res/layout/title_bar.xml
index fed4c6c..0f70519 100644
--- a/res/layout/title_bar.xml
+++ b/res/layout/title_bar.xml
@@ -59,25 +59,25 @@
                     android:layout_height="wrap_content" />
             </LinearLayout>
             <!-- need to make this no wider than the horizontal progress bar -->
-            <TextView android:id="@+id/url"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="4dip"
-                android:layout_marginLeft="6dip"
-                android:textSize="12dip"
-                android:textColor="#ff333333"
-                android:singleLine="true"
-                />
             <TextView android:id="@+id/title"
                 android:layout_height="wrap_content"
                 android:layout_width="wrap_content"
                 android:layout_marginLeft="6dip"
-                android:layout_below="@id/url"
+                android:layout_marginTop="4dip"
                 android:textSize="14dip"
-                android:textColor="#ff333333"
+                android:textColor="@color/white"
                 android:textStyle="bold"
                 android:singleLine="true"
                 />
+            <TextView android:id="@+id/url"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="6dip"
+                android:layout_below="@id/title"
+                android:textSize="12dip"
+                android:textColor="@color/white"
+                android:singleLine="true"
+                />
             <ImageView android:id="@+id/lock_icon"
                 android:layout_height="wrap_content"
                 android:layout_width="wrap_content"
@@ -86,23 +86,20 @@
                 android:visibility="gone"/>
         </RelativeLayout>
     </LinearLayout>
-    <!-- divider -->
-    <View
-        android:layout_height="fill_parent"
-        android:layout_width="2dip"
-        android:background="@drawable/button_line"/>
     <!-- These buttons will change look/functionality -->
-    <ImageView android:id="@+id/zoom_in"
+    <ImageView android:id="@+id/lft_button"
         android:layout_width="52dip"
         android:layout_height="wrap_content"
-        android:src="@drawable/ic_titlebar_zoom"/>
+        android:layout_gravity="center_vertical"
+        android:src="@android:drawable/btn_star"/>
     <!-- divider -->
     <View android:id="@+id/divider"
         android:layout_height="fill_parent"
         android:layout_width="2dip"
         android:background="@drawable/button_line"/>
-    <ImageView android:id="@+id/zoom_out"
+    <ImageView android:id="@+id/rt_button"
         android:layout_width="52dip"
         android:layout_height="wrap_content"
-        android:src="@drawable/ic_titlebar_zoom_out"/>
+        android:layout_gravity="center_vertical"
+        android:src="@*android:drawable/btn_browser_zoom_page_overview"/>
 </LinearLayout>
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 15e07f7..1966b8b 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -650,7 +650,6 @@
         super.onCreate(icicle);
         if (CUSTOM_BROWSER_BAR) {
             this.requestWindowFeature(Window.FEATURE_NO_TITLE);
-            mTitleBar = new TitleBar(this);
         } else {
             this.requestWindowFeature(Window.FEATURE_LEFT_ICON);
             this.requestWindowFeature(Window.FEATURE_RIGHT_ICON);
@@ -687,18 +686,14 @@
         FrameLayout frameLayout = (FrameLayout) getWindow().getDecorView()
                 .findViewById(com.android.internal.R.id.content);
         if (CUSTOM_BROWSER_BAR) {
-            mContentView = new FrameLayout(this);
             // This LinearLayout will hold the title bar and a FrameLayout, which
             // holds everything else.
-            LinearLayout linearLayout = new LinearLayout(this);
-            linearLayout.setOrientation(LinearLayout.VERTICAL);
-            linearLayout.addView(mTitleBar, new LinearLayout.LayoutParams(
-                    ViewGroup.LayoutParams.FILL_PARENT,
-                    ViewGroup.LayoutParams.WRAP_CONTENT));
-            linearLayout.addView(mContentView, new LinearLayout.LayoutParams(
-                    ViewGroup.LayoutParams.FILL_PARENT,
-                    ViewGroup.LayoutParams.FILL_PARENT));
-
+            LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(this)
+                    .inflate(R.layout.custom_screen, null);
+            mTitleBar = (TitleBar) linearLayout.findViewById(R.id.title_bar);
+            mTitleBar.setBrowserActivity(this);
+            mContentView = (FrameLayout) linearLayout.findViewById(
+                    R.id.main_content);
             frameLayout.addView(linearLayout, COVER_SCREEN_PARAMS);
         } else {
             mContentView = frameLayout;
@@ -4627,7 +4622,7 @@
         mMenuState = EMPTY_MENU;
     }
 
-    private void bookmarksOrHistoryPicker(boolean startWithHistory) {
+    /* package */ void bookmarksOrHistoryPicker(boolean startWithHistory) {
         WebView current = mTabControl.getCurrentWebView();
         if (current == null) {
             return;
diff --git a/src/com/android/browser/TitleBar.java b/src/com/android/browser/TitleBar.java
index b512c78..f43058b 100644
--- a/src/com/android/browser/TitleBar.java
+++ b/src/com/android/browser/TitleBar.java
@@ -18,55 +18,42 @@
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
 import android.webkit.WebView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
-import android.view.LayoutInflater;
-import android.view.View;
 
-/* package */ class TitleBar extends LinearLayout {
+public class TitleBar extends LinearLayout {
     private TextView        mTitle;
     private TextView        mUrl;
-    private ImageView       mZoomIn;
-    private View            mZoomOut;
+    private ImageView       mLftButton;
+    private Drawable        mBookmarkDrawable;
+    private View            mRtButton;
     private View            mDivider;
     private ProgressBar     mCircularProgress;
     private ProgressBar     mHorizontalProgress;
     private ImageView       mFavicon;
     private ImageView       mLockIcon;
     private boolean         mInLoad;
-    private CharSequence    mTitleOnceLoaded;
-    private BrowserActivity mActivity;
 
+    public TitleBar(Context context) {
+        this(context, null);
+    }
 
-    /* package */ TitleBar(BrowserActivity context) {
-        super(context);
-        mActivity = context;
+    public TitleBar(Context context, AttributeSet attrs) {
+        super(context, attrs);
         LayoutInflater factory = LayoutInflater.from(context);
         factory.inflate(R.layout.title_bar, this);
 
         mTitle = (TextView) findViewById(R.id.title);
         mUrl = (TextView) findViewById(R.id.url);
 
-        mZoomIn = (ImageView) findViewById(R.id.zoom_in);
-        mZoomIn.setOnClickListener(new View.OnClickListener() {
-                    public void onClick(View v) {
-                        if (mInLoad) {
-                            mActivity.getTopWindow().stopLoading();
-                        } else {
-                            mActivity.getTopWindow().zoomIn();
-                        }
-                    }
-                });
-        mZoomOut = findViewById(R.id.zoom_out);
-        // Make zoom out disappear while loading
-        mZoomOut.setOnClickListener(new View.OnClickListener() {
-                    public void onClick(View v) {
-                        mActivity.getTopWindow().zoomOut();
-                    }
-                });
+        mLftButton = (ImageView) findViewById(R.id.lft_button);
+        mRtButton = findViewById(R.id.rt_button);
 
         mCircularProgress = (ProgressBar) findViewById(R.id.progress_circular);
         mHorizontalProgress = (ProgressBar) findViewById(
@@ -74,9 +61,32 @@
         mFavicon = (ImageView) findViewById(R.id.favicon);
         mLockIcon = (ImageView) findViewById(R.id.lock_icon);
         mDivider = findViewById(R.id.divider);
+    }
+
+    /* package */ void setBrowserActivity(final BrowserActivity activity) {
+        mLftButton.setOnClickListener(new View.OnClickListener() {
+                    public void onClick(View v) {
+                        if (mInLoad) {
+                            WebView webView = activity.getTopWindow();
+                            if (webView != null) {
+                                webView.stopLoading();
+                            }
+                        } else {
+                            activity.bookmarksOrHistoryPicker(false);
+                        }
+                    }
+                });
+        mRtButton.setOnClickListener(new View.OnClickListener() {
+                    public void onClick(View v) {
+                        WebView webView = activity.getTopWindow();
+                        if (webView != null) {
+                            webView.zoomScrollOut();
+                        }
+                    }
+                });
         setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
-                mActivity.onSearchRequested();
+                activity.onSearchRequested();
             }
         });
     }
@@ -98,10 +108,9 @@
         if (newProgress == mCircularProgress.getMax()) {
             mCircularProgress.setVisibility(View.GONE);
             mHorizontalProgress.setVisibility(View.GONE);
-            mTitle.setText(mTitleOnceLoaded);
             mDivider.setVisibility(View.VISIBLE);
-            mZoomOut.setVisibility(View.VISIBLE);
-            mZoomIn.setImageResource(R.drawable.ic_titlebar_zoom);
+            mRtButton.setVisibility(View.VISIBLE);
+            mLftButton.setImageDrawable(mBookmarkDrawable);
             mInLoad = false;
         } else {
             mCircularProgress.setProgress(newProgress);
@@ -109,16 +118,21 @@
             mCircularProgress.setVisibility(View.VISIBLE);
             mHorizontalProgress.setVisibility(View.VISIBLE);
             mDivider.setVisibility(View.GONE);
-            mZoomOut.setVisibility(View.GONE);
-            mZoomIn.setImageResource(com.android.internal.R.drawable.ic_menu_stop);
+            mRtButton.setVisibility(View.GONE);
+            if (mBookmarkDrawable == null) {
+                // The drawable was assigned in the xml file, so it already
+                // exists.  Keep a pointer to it when we switch to the resource
+                // so we can easily switch back.
+                mBookmarkDrawable = mLftButton.getDrawable();
+            }
+            mLftButton.setImageResource(
+                    com.android.internal.R.drawable.ic_menu_stop);
             mInLoad = true;
         }
     }
 
     /* package */ void setTitleAndUrl(CharSequence title, CharSequence url) {
-        mTitleOnceLoaded = title;
-        if (null == title || mHorizontalProgress.getProgress() <
-                mHorizontalProgress.getMax()) {
+        if (null == title) {
             mTitle.setText(R.string.title_bar_loading);
         } else {
             mTitle.setText(title);