UI theme work
  fixed styles for action bar
  changed URLInput layout
  suppress selection acion mode for url input

Change-Id: Ia5dbab792057b7d172e797c01f07f06ca190c88b
diff --git a/res/drawable-mdpi/ic_add_string.png b/res/drawable-mdpi/ic_add_string.png
new file mode 100644
index 0000000..e3b95cb
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_string.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_favorite_on_dark.png b/res/drawable-mdpi/ic_favorite_on_dark.png
new file mode 100644
index 0000000..50563c1
--- /dev/null
+++ b/res/drawable-mdpi/ic_favorite_on_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_go_dark.png b/res/drawable-mdpi/ic_go_dark.png
new file mode 100644
index 0000000..88c0985
--- /dev/null
+++ b/res/drawable-mdpi/ic_go_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_cab_close.png b/res/drawable-mdpi/ic_menu_cab_close.png
new file mode 100644
index 0000000..3451027
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_cab_close.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_cab_pencil.png b/res/drawable-mdpi/ic_menu_cab_pencil.png
new file mode 100644
index 0000000..5d6ab57
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_cab_pencil.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_overflow.png b/res/drawable-mdpi/ic_menu_overflow.png
new file mode 100644
index 0000000..e565760
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_overflow.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_pressed.png b/res/drawable-mdpi/ic_pressed.png
index dccdc83..fd1c7d9 100644
--- a/res/drawable-mdpi/ic_pressed.png
+++ b/res/drawable-mdpi/ic_pressed.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_search_catgeory_browser.png b/res/drawable-mdpi/ic_search_category_browser.png
similarity index 100%
rename from res/drawable-mdpi/ic_search_catgeory_browser.png
rename to res/drawable-mdpi/ic_search_category_browser.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_search_category_suggest.png b/res/drawable-mdpi/ic_search_category_suggest.png
old mode 100755
new mode 100644
index a4ed7aa..0216581
--- a/res/drawable-mdpi/ic_search_category_suggest.png
+++ b/res/drawable-mdpi/ic_search_category_suggest.png
Binary files differ
diff --git a/res/drawable-mdpi/menu_dropdown.9.png b/res/drawable-mdpi/menu_dropdown.9.png
new file mode 100644
index 0000000..562d55b
--- /dev/null
+++ b/res/drawable-mdpi/menu_dropdown.9.png
Binary files differ
diff --git a/res/drawable-mdpi/tab_selected_bg.9.png b/res/drawable-mdpi/tab_selected_bg.9.png
index 2004313..261982e 100644
--- a/res/drawable-mdpi/tab_selected_bg.9.png
+++ b/res/drawable-mdpi/tab_selected_bg.9.png
Binary files differ
diff --git a/res/drawable-mdpi/text_field_results.9.png b/res/drawable-mdpi/text_field_results.9.png
index 5d08fe9..167c42d 100644
--- a/res/drawable-mdpi/text_field_results.9.png
+++ b/res/drawable-mdpi/text_field_results.9.png
Binary files differ
diff --git a/res/drawable-mdpi/urlbar_bg.9.png b/res/drawable-mdpi/urlbar_bg.9.png
index eccf41b..18b49e7 100644
--- a/res/drawable-mdpi/urlbar_bg.9.png
+++ b/res/drawable-mdpi/urlbar_bg.9.png
Binary files differ
diff --git a/res/layout/url_bar.xml b/res/layout/url_bar.xml
index 29a6462..b803881 100644
--- a/res/layout/url_bar.xml
+++ b/res/layout/url_bar.xml
@@ -54,10 +54,11 @@
             android:background="@drawable/browserbarbutton"
             android:src="@drawable/ic_bookmarks_history_normal" />
         <LinearLayout
-            android:id="@+id/urlbar"
+            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"
@@ -72,15 +73,14 @@
                 android:layout_height="wrap_content"
                 style="@style/HoloIcon"
                 android:visibility="gone" />
-            <com.android.browser.UrlInputView
-                android:id="@+id/editurl"
+            <EditText
+                android:id="@+id/url_unfocused"
                 android:layout_width="0dip"
                 android:layout_weight="1.0"
                 android:layout_height="match_parent"
                 android:background="@null"
-                android:paddingLeft="16dip"
-                android:paddingRight="16dip"
                 android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textColor="#ffc0c0c0"
                 android:hint="@string/search_hint"
                 android:gravity="center_vertical"
                 android:singleLine="true"
@@ -98,6 +98,46 @@
                 style="@style/HoloButton"
                 android:background="@drawable/browserbarbutton" />
         </LinearLayout>
+        <LinearLayout
+            android:id="@+id/urlbar_focused"
+            android:layout_width="0dip"
+            android:layout_height="match_parent"
+            android:layout_weight="1.0"
+            android:orientation="horizontal"
+            android:background="@drawable/text_field_results"
+            android:visibility="gone"
+             >
+            <ImageView
+                android:id="@+id/searchicon"
+                android:src="@drawable/ic_search_category_suggest"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                style="@style/HoloButton" />
+            <com.android.browser.UrlInputView
+                android:id="@+id/url_focused"
+                android:layout_width="0dip"
+                android:layout_weight="1.0"
+                android:layout_height="match_parent"
+                android:background="@null"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textColor="@color/black"
+                android:hint="@string/search_hint"
+                android:gravity="center_vertical"
+                android:singleLine="true"
+                android:ellipsize="end"
+                android:lines="1"
+                android:scrollHorizontally="true"
+                android:inputType="textUri"
+                android:imeOptions="actionGo" />
+            <ImageButton
+                android:id="@+id/go"
+                android:src="@drawable/ic_go_dark"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                style="@style/HoloButton"
+                android:background="@drawable/browserbarbutton" />
+        </LinearLayout>
     </LinearLayout>
     <com.android.browser.PageProgressView
         android:id="@+id/progress"
diff --git a/res/layout/simple_dropdown_item_2line.xml b/res/layout/url_dropdown_item.xml
similarity index 79%
rename from res/layout/simple_dropdown_item_2line.xml
rename to res/layout/url_dropdown_item.xml
index 8b955ec..5e8f84c 100644
--- a/res/layout/simple_dropdown_item_2line.xml
+++ b/res/layout/url_dropdown_item.xml
@@ -2,7 +2,7 @@
 <!--
 /* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml
 **
-** Copyright 2008, The Android Open Source Project
+** Copyright 2010, 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.
@@ -21,7 +21,7 @@
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="?android:attr/listPreferredItemHeight"
+    android:layout_height="wrap_content"
     android:orientation="horizontal"
     android:gravity="center_vertical"
     android:baselineAligned="false">
@@ -30,11 +30,10 @@
         android:layout_height="wrap_content"
         android:id="@+id/icon1"
         android:scaleType="center"
-        android:paddingLeft="2dip"
-        android:paddingRight="2dip" />
+        style="@style/HoloButton" />
     <TwoLineListItem
-        android:paddingTop="2dip"
-        android:paddingBottom="2dip"
+        android:paddingTop="16dip"
+        android:paddingBottom="16dip"
         android:layout_width="0dip"
         android:layout_weight="1"
         android:layout_height="wrap_content"
@@ -57,4 +56,13 @@
             android:layout_below="@android:id/text1"
             android:layout_alignLeft="@android:id/text1" />
     </TwoLineListItem>
+    <ImageButton
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/icon2"
+        android:scaleType="center"
+        style="@style/HoloButton"
+        android:src="@drawable/ic_add_string"
+        android:background="@drawable/browserbarbutton"
+         />
 </LinearLayout>
diff --git a/res/values-xlarge/styles.xml b/res/values-xlarge/styles.xml
index d48a502..0f17da3 100644
--- a/res/values-xlarge/styles.xml
+++ b/res/values-xlarge/styles.xml
@@ -26,6 +26,10 @@
         <item name="android:actionBarStyle">@style/ActionBarStyle</item>
         <item name="android:windowContentOverlay">@null</item>
         <item name="android:actionModeBackground">@drawable/cab_bg</item>
+        <item name="android:actionModeCloseDrawable">@drawable/ic_menu_cab_close</item>
+        <item name="android:actionButtonStyle">@style/ActionButton</item>
+        <item name="android:actionDropDownStyle">@style/ActionDropdown</item>
+        <item name="android:actionOverflowButtonStyle">@style/Overflow</item>
     </style>
     <style name="Dialog.Holo" parent="android:Theme.Holo">
         <item name="android:windowFrame">@null</item>
@@ -47,6 +51,18 @@
         <item name="android:padding">0dip</item>
         <item name="android:displayOptions">hideHome</item>
     </style>
+    <style name="ActionButton">
+        <item name="android:height">12dip</item>
+        <item name="android:background">@drawable/browserbarbutton</item>
+    </style>
+    <style name="ActionDropdown">
+        <item name="android:background">@drawable/menu_dropdown</item>
+    </style>
+    <style name="Overflow">
+        <item name="android:src">@drawable/ic_menu_overflow</item>
+        <item name="android:paddingLeft">16dip</item>
+        <item name="android:paddingRight">16dip</item>
+    </style>
     <style name="TitleBar">
         <item name="android:windowEnterAnimation">@anim/title_bar_enter</item>
         <item name="android:windowExitAnimation">@anim/title_bar_exit</item>
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index e305c07..3408108 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -18,17 +18,13 @@
 
 import com.android.browser.UrlInputView.UrlInputListener;
 
-import android.app.AlertDialog;
 import android.app.SearchManager;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
-import android.graphics.Color;
 import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.Message;
+import android.util.Log;
 import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.MenuInflater;
@@ -36,6 +32,7 @@
 import android.view.View.OnClickListener;
 import android.view.View.OnFocusChangeListener;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 /**
  * tabbed title bar for xlarge screen browser
@@ -48,8 +45,6 @@
     private BrowserActivity mBrowserActivity;
     private Drawable mStopDrawable;
     private Drawable mReloadDrawable;
-    private Drawable mFocusDrawable;
-    private Drawable mUnFocusDrawable;
 
 
     private View mContainer;
@@ -57,11 +52,14 @@
     private View mForwardButton;
     private View mStar;
     private View mSearchButton;
-    private View mInputContainer;
+    private View mFocusContainer;
+    private View mUnfocusContainer;
+    private View mGoButton;
     private ImageView mStopButton;
     private View mAllButton;
     private PageProgressView mProgressView;
-    private UrlInputView mUrlView;
+    private UrlInputView mUrlFocused;
+    private TextView mUrlUnfocused;
     private boolean mInLoad;
 
     public TitleBarXLarge(BrowserActivity context) {
@@ -70,8 +68,6 @@
         Resources resources = context.getResources();
         mStopDrawable = resources.getDrawable(R.drawable.ic_stop_normal);
         mReloadDrawable = resources.getDrawable(R.drawable.ic_refresh_normal);
-        mFocusDrawable = resources.getDrawable(R.drawable.text_field_results);
-        mUnFocusDrawable = resources.getDrawable(R.drawable.text_field);
         rebuildLayout(context, true);
     }
 
@@ -80,7 +76,8 @@
         factory.inflate(R.layout.url_bar, this);
 
         mContainer = findViewById(R.id.taburlbar);
-        mUrlView = (UrlInputView) findViewById(R.id.editurl);
+        mUrlFocused = (UrlInputView) findViewById(R.id.url_focused);
+        mUrlUnfocused = (TextView) findViewById(R.id.url_unfocused);
         mAllButton = findViewById(R.id.all_btn);
         // TODO: Change enabled states based on whether you can go
         // back/forward.  Probably should be done inside onPageStarted.
@@ -90,8 +87,10 @@
         mStopButton = (ImageView) findViewById(R.id.stop);
         mSearchButton = findViewById(R.id.search);
         mLockIcon = (ImageView) findViewById(R.id.lock);
+        mGoButton = findViewById(R.id.go);
         mProgressView = (PageProgressView) findViewById(R.id.progress);
-        mInputContainer = findViewById(R.id.urlbar);
+        mFocusContainer = findViewById(R.id.urlbar_focused);
+        mUnfocusContainer = findViewById(R.id.urlbar_unfocused);
 
         mBackButton.setOnClickListener(this);
         mForwardButton.setOnClickListener(this);
@@ -99,16 +98,19 @@
         mAllButton.setOnClickListener(this);
         mStopButton.setOnClickListener(this);
         mSearchButton.setOnClickListener(this);
-        mUrlView.setUrlInputListener(this);
-        mUrlView.setOnFocusChangeListener(this);
-        mInputContainer.setBackgroundDrawable(mUnFocusDrawable);
-        mUrlView.setTextColor(Color.GRAY);
-
+        mGoButton.setOnClickListener(this);
+        mUrlFocused.setUrlInputListener(this);
+        mUrlUnfocused.setOnFocusChangeListener(this);
     }
     
     public void onFocusChange(View v, boolean hasFocus) {
-        mInputContainer.setBackgroundDrawable(hasFocus ? mFocusDrawable : mUnFocusDrawable);
-        mUrlView.setTextColor(hasFocus ? Color.BLACK : Color.GRAY);
+        if (hasFocus) {
+            swapUrlContainer(true);
+            mUrlFocused.selectAll();
+            mUrlFocused.requestFocus();
+            mUrlFocused.setDropDownWidth(mUnfocusContainer.getWidth());
+            mUrlFocused.setDropDownHorizontalOffset(-mUrlFocused.getLeft());
+        }
     }
 
     @Override
@@ -125,6 +127,8 @@
             search();
         } else if (mStopButton == v) {
             stopOrRefresh();
+        } else if (mGoButton == v) {
+            onAction(mUrlFocused.getText().toString());
         }
     }
 
@@ -132,10 +136,6 @@
         return mContainer.getHeight();
     }
 
-    void requestUrlInputFocus() {
-        mUrlView.requestFocus();
-    }
-
     @Override
     void setFavicon(Bitmap icon) { }
 
@@ -149,13 +149,29 @@
         i.setAction(Intent.ACTION_SEARCH);
         i.putExtra(SearchManager.QUERY, text);
         mBrowserActivity.onNewIntent(i);
+        swapUrlContainer(false);
+        setDisplayTitle(text);
     }
 
     @Override
     public void onDismiss() {
         mBrowserActivity.getTabControl().getCurrentTopWebView().requestFocus();
         mBrowserActivity.hideFakeTitleBar();
-        mUrlView.setText(mBrowserActivity.getTabControl().getCurrentWebView().getUrl());
+        setDisplayTitle(mBrowserActivity.getTabControl().getCurrentWebView().getUrl());
+        swapUrlContainer(false);
+    }
+
+    @Override
+    public void onEdit(String text) {
+        setDisplayTitle(text);
+        if (text != null) {
+            mUrlFocused.setSelection(text.length());
+        }
+    }
+
+    private void swapUrlContainer(boolean focus) {
+        mUnfocusContainer.setVisibility(focus ? View.GONE : View.VISIBLE);
+        mFocusContainer.setVisibility(focus ? View.VISIBLE : View.GONE);
     }
 
     @Override
@@ -166,8 +182,8 @@
     }
 
     private void search() {
-        mUrlView.setText("");
-        mUrlView.requestFocus();
+        setDisplayTitle("");
+        mUrlUnfocused.requestFocus();
     }
 
     private void stopOrRefresh() {
@@ -199,7 +215,8 @@
 
     @Override
     /* package */ void setDisplayTitle(String title) {
-        mUrlView.setText(title);
+        mUrlFocused.setText(title);
+        mUrlUnfocused.setText(title);
     }
 
 }
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 9ae464b..96a5980 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -20,21 +20,26 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.Cursor;
+import android.graphics.Color;
 import android.graphics.drawable.Drawable;
+import android.text.Editable;
+import android.text.SpannableStringBuilder;
+import android.text.TextWatcher;
+import android.text.style.BackgroundColorSpan;
 import android.util.AttributeSet;
 import android.util.Log;
+import android.view.ActionMode;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
-import android.view.MotionEvent;
 import android.view.View;
+import android.view.View.OnClickListener;
 import android.view.View.OnFocusChangeListener;
 import android.view.ViewGroup;
 import android.view.inputmethod.InputMethodManager;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
 import android.widget.AutoCompleteTextView;
 import android.widget.CursorAdapter;
 import android.widget.Filterable;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
@@ -44,7 +49,7 @@
  * handling suggestions
  */
 public class UrlInputView extends AutoCompleteTextView
-        implements OnFocusChangeListener, OnItemClickListener, OnEditorActionListener {
+        implements OnFocusChangeListener, OnClickListener, OnEditorActionListener {
 
     private UrlInputListener   mListener;
     private InputMethodManager mInputManager;
@@ -75,9 +80,13 @@
         mAdapter = new SuggestionsAdapter(mContext,
                 BrowserProvider.getBookmarksSuggestions(cr, null));
         setAdapter(mAdapter);
-        setOnItemClickListener(this);
         setSelectAllOnFocus(false);
-        
+    }
+
+    @Override
+    public ActionMode startActionMode(ActionMode.Callback callback) {
+        // suppress selection action mode
+        return null;
     }
 
     @Override
@@ -92,19 +101,6 @@
     }
     
     @Override
-    public boolean onTouchEvent(MotionEvent evt) {
-        
-        if ((evt.getAction() == MotionEvent.ACTION_DOWN) && !this.hasFocus()) {
-            Log.i("test","onTouch");
-            selectAll();
-            requestFocus();
-            return true;
-        } else {
-            return super.onTouchEvent(evt);
-        }
-    }
-    
-    @Override
     public void onFocusChange(View v, boolean hasFocus) {
         if (hasFocus) {
             forceIme();
@@ -117,12 +113,18 @@
     }
 
     @Override
-    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        String url = mAdapter.getViewString(view);
-        finishInput(url);
+    public void onClick(View view) {
+        if (view instanceof ImageButton) {
+            // user pressed edit search button
+            String text = mAdapter.getViewString((View)view.getParent());
+            mListener.onEdit(text);
+        } else {
+            // user selected dropdown item
+            String url = mAdapter.getViewString(view);
+            finishInput(url);
+        }
     }
 
-
     public void setUrlInputListener(UrlInputListener listener) {
         mListener = listener;
     }
@@ -155,6 +157,7 @@
     interface UrlInputListener {
         public void onDismiss();
         public void onAction(String text);
+        public void onEdit(String text);
     }
 
     /**
@@ -190,7 +193,7 @@
         public View newView(Context context, Cursor cursor, ViewGroup parent) {
             final LayoutInflater inflater = LayoutInflater.from(context);
             final View view = inflater.inflate(
-                    R.layout.simple_dropdown_item_2line, parent, false);
+                    R.layout.url_dropdown_item, parent, false);
             bindView(view, context, cursor);
             return view;
         }
@@ -200,16 +203,20 @@
             TextView tv1 = (TextView) view.findViewById(android.R.id.text1);
             TextView tv2 = (TextView) view.findViewById(android.R.id.text2);
             ImageView ic1 = (ImageView) view.findViewById(R.id.icon1);
+            View ic2 = view.findViewById(R.id.icon2);
             tv1.setText(cursor.getString(mIndexText1));
             String url = cursor.getString(mIndexText2);
             tv2.setText((url != null) ? url : "");
+            ic2.setOnClickListener(UrlInputView.this);
             // assume an id
             try {
                 int id = Integer.parseInt(cursor.getString(mIndexIcon));
                 Drawable d = context.getResources().getDrawable(id);
                 ic1.setImageDrawable(d);
+                ic2.setVisibility((id == R.drawable.ic_search_category_suggest)? View.VISIBLE : View.GONE);
             } catch (NumberFormatException nfx) {
             }
+            view.setOnClickListener(UrlInputView.this);
         }
 
         @Override