Update add bookmark dialog

 Bug: 5362468
 Don't put listviews inside scrollviews
 Update the buttons to fancy style
 Cleanup padding and sizes

Change-Id: I6b255a194a150b9efb01157475815e654df8231c
diff --git a/res/layout/browser_add_bookmark.xml b/res/layout/browser_add_bookmark.xml
index 4b84ff2..66950f4 100644
--- a/res/layout/browser_add_bookmark.xml
+++ b/res/layout/browser_add_bookmark.xml
@@ -14,16 +14,13 @@
      limitations under the License.
 -->
 
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:divider="?android:attr/dividerHorizontal"
+    android:showDividers="middle">
 
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        >
-        <include layout="@layout/browser_add_bookmark_content" />
+    <include layout="@layout/browser_add_bookmark_content" />
 
-    </LinearLayout>
-</ScrollView>
+</LinearLayout>
diff --git a/res/layout/browser_add_bookmark_content.xml b/res/layout/browser_add_bookmark_content.xml
index 03936c3..58db8a5 100644
--- a/res/layout/browser_add_bookmark_content.xml
+++ b/res/layout/browser_add_bookmark_content.xml
@@ -17,11 +17,12 @@
 <merge xmlns:android="http://schemas.android.com/apk/res/android">
     <LinearLayout android:id="@+id/crumb_holder"
         android:layout_width="match_parent"
-        android:layout_height="?android:attr/listPreferredItemHeight"
+        android:layout_height="wrap_content"
         android:visibility="gone"
         android:paddingLeft="5dip"
         android:paddingRight="5dip"
         android:orientation="horizontal"
+        android:minHeight="?android:attr/listPreferredItemHeightSmall"
         >
         <com.android.browser.BreadCrumbView android:id="@+id/crumbs"
             android:layout_width="0dip"
@@ -35,21 +36,24 @@
         <TextView
             android:id="@+id/add_new_folder"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:drawableLeft="@drawable/ic_add_string"
             android:text="@string/new_folder"
             android:visibility="gone"
             android:focusable="true"
             android:background="?android:attr/selectableItemBackground"
             android:textAppearance="?android:attr/textAppearanceMedium"
-            android:gravity="center_vertical" />
+            android:gravity="center_vertical"
+            android:layout_gravity="center_vertical"
+            android:paddingRight="8dip" />
     </LinearLayout>
     <LinearLayout android:id="@+id/title_holder"
         android:layout_width="match_parent"
-        android:layout_height="?android:attr/listPreferredItemHeight"
+        android:layout_height="wrap_content"
         android:orientation="horizontal"
         android:paddingLeft="5dip"
         android:paddingRight="5dip"
+        android:minHeight="?android:attr/listPreferredItemHeightSmall"
         >
         <TextView android:id="@+id/fake_title"
             android:layout_width="0dip"
@@ -76,141 +80,146 @@
             android:visibility="gone"
             android:textAppearance="?android:attr/textAppearanceMedium" />
     </LinearLayout>
-    <View android:layout_width="match_parent"
-        android:layout_height="1dip"
-        android:background="?android:attr/dividerHorizontal"
-        />
 
-    <TableLayout android:id="@+id/default_view"
+    <FrameLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:stretchColumns="1"
-        android:shrinkColumns="1"
-        android:paddingTop="10dip"
-        android:paddingLeft="20dip"
-        android:paddingRight="20dip" >
-      <TableRow android:layout_marginBottom="10dip">
-        <TextView
-            android:id="@+id/titleText"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:text="@string/name"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-
-        <EditText
-            android:id="@+id/title"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_marginLeft="20dip"
-            android:inputType="textCapSentences"
-            android:ellipsize="end"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-      </TableRow>
-
-      <TableRow
-          android:layout_marginBottom="10dip"
-          android:id="@+id/row_address">
-        <TextView
-            android:id="@+id/addressText"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:text="@string/location"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-
-        <EditText
-            android:id="@+id/address"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_marginLeft="20dip"
-            android:hint="@string/http"
-            android:inputType="textUri"
-            android:ellipsize="end"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-      </TableRow>
-      <TableRow android:layout_marginBottom="10dip">
-        <TextView
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:text="@string/account"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-
-        <Spinner
-            android:id="@+id/accounts"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_marginLeft="20dip"
-            android:spinnerMode="dropdown"
-            />
-      </TableRow>
-      <TableRow android:layout_marginBottom="10dip">
-        <TextView
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:text="@string/containing_folder"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-
-        <view class="com.android.browser.addbookmark.FolderSpinner"
-            android:id="@+id/folder"
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:layout_marginLeft="20dip"
-            android:spinnerMode="dropdown"
-            />
-      </TableRow>
-    </TableLayout>
-
-    <LinearLayout android:id="@+id/folder_selector"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/folder_selector_height"
-        android:orientation="vertical"
-        android:visibility="gone"
-        >
-
-        <view class="com.android.browser.AddBookmarkPage$CustomListView"
-            android:id="@+id/list"
-            android:layout_marginLeft="16dip"
-            android:layout_marginRight="16dip"
+        android:layout_height="0dip"
+        android:layout_weight="1">
+        <ScrollView
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            />
-        <TextView
-            android:id="@+id/empty"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
+            android:layout_height="match_parent">
+            <TableLayout android:id="@+id/default_view"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:stretchColumns="1"
+                android:shrinkColumns="1"
+                android:paddingTop="10dip"
+                android:paddingLeft="20dip"
+                android:paddingRight="20dip" >
+              <TableRow android:layout_marginBottom="10dip">
+                <TextView
+                    android:id="@+id/titleText"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:text="@string/name"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+
+                <EditText
+                    android:id="@+id/title"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_marginLeft="20dip"
+                    android:inputType="textCapSentences|textNoSuggestions"
+                    android:ellipsize="end"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+              </TableRow>
+
+              <TableRow
+                  android:layout_marginBottom="10dip"
+                  android:id="@+id/row_address">
+                <TextView
+                    android:id="@+id/addressText"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:text="@string/location"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+
+                <EditText
+                    android:id="@+id/address"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_marginLeft="20dip"
+                    android:hint="@string/http"
+                    android:inputType="textUri"
+                    android:ellipsize="end"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+              </TableRow>
+              <TableRow android:layout_marginBottom="10dip">
+                <TextView
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:text="@string/account"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+
+                <Spinner
+                    android:id="@+id/accounts"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_marginLeft="20dip"
+                    android:spinnerMode="dropdown"
+                    />
+              </TableRow>
+              <TableRow android:layout_marginBottom="10dip">
+                <TextView
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:text="@string/containing_folder"
+                    android:textAppearance="?android:attr/textAppearanceMedium" />
+
+                <view class="com.android.browser.addbookmark.FolderSpinner"
+                    android:id="@+id/folder"
+                    android:layout_height="wrap_content"
+                    android:layout_width="wrap_content"
+                    android:layout_marginLeft="20dip"
+                    android:spinnerMode="dropdown"
+                    />
+              </TableRow>
+            </TableLayout>
+        </ScrollView>
+
+        <LinearLayout android:id="@+id/folder_selector"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
             android:visibility="gone"
-            android:layout_marginLeft="16dip"
-            android:layout_marginTop="16dip"
-            android:text="@string/no_subfolders"
-            android:textStyle="italic"
-            android:textAppearance="?android:attr/textAppearanceMedium" />
-    </LinearLayout>
+            >
+
+            <view class="com.android.browser.AddBookmarkPage$CustomListView"
+                android:id="@+id/list"
+                android:layout_marginLeft="16dip"
+                android:layout_marginRight="16dip"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                />
+            <TextView
+                android:id="@+id/empty"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:visibility="gone"
+                android:layout_marginLeft="16dip"
+                android:layout_marginTop="16dip"
+                android:text="@string/no_subfolders"
+                android:textStyle="italic"
+                android:textAppearance="?android:attr/textAppearanceMedium" />
+        </LinearLayout>
+
+    </FrameLayout>
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:minHeight="54dip"
         android:orientation="horizontal"
-        android:paddingTop="4dip"
-        android:paddingLeft="2dip"
-        android:paddingRight="2dip" >
+        style="?android:attr/buttonBarStyle">
         <Button android:id="@+id/cancel"
             android:text="@string/do_not_save"
             android:layout_width="0dip"
             android:layout_gravity="right"
             android:layout_weight="1"
             android:maxLines="2"
-            android:layout_height="wrap_content" />
+            android:layout_height="wrap_content"
+            style="?android:attr/buttonBarButtonStyle" />
         <Button android:id="@+id/OK"
             android:text="@string/save"
             android:layout_width="0dip"
             android:layout_gravity="left"
             android:layout_weight="1"
             android:maxLines="2"
-            android:layout_height="wrap_content" />
+            android:layout_height="wrap_content"
+            style="?android:attr/buttonBarButtonStyle" />
     </LinearLayout>
 
 </merge>
diff --git a/res/values/integers.xml b/res/values/integers.xml
index fe92a79..5f75723 100644
--- a/res/values/integers.xml
+++ b/res/values/integers.xml
@@ -20,7 +20,6 @@
     <integer name="max_tabs">16</integer>
     <!--  The duration of the tab animations in millisecs  -->
     <integer name="tab_animation_duration">200</integer>
-    <integer name="max_width_crumb">200</integer>
     <!-- The maximum number of most visited URLs in the history tab -->
     <integer name="most_visits_limit">10</integer>
     <!-- Animation durations -->
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index 903c363..71af567 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -367,6 +367,8 @@
         mFakeTitleHolder.setVisibility(View.GONE);
         mAddNewFolder.setVisibility(View.VISIBLE);
         mAddSeparator.setVisibility(View.VISIBLE);
+        getInputMethodManager().hideSoftInputFromWindow(
+                mListView.getWindowToken(), 0);
     }
 
     private void descendInto(String foldername, long id) {
diff --git a/src/com/android/browser/BreadCrumbView.java b/src/com/android/browser/BreadCrumbView.java
index 6706deb..aa77744 100644
--- a/src/com/android/browser/BreadCrumbView.java
+++ b/src/com/android/browser/BreadCrumbView.java
@@ -40,6 +40,7 @@
  */
 public class BreadCrumbView extends LinearLayout implements OnClickListener {
     private static final int DIVIDER_PADDING = 12; // dips
+    private static final int CRUMB_PADDING = 8; // dips
 
     public interface Controller {
         public void onTop(BreadCrumbView view, int level, Object data);
@@ -53,6 +54,7 @@
     private float mDividerPadding;
     private int mMaxVisible = -1;
     private Context mContext;
+    private int mCrumbPadding;
 
     /**
      * @param context
@@ -89,7 +91,9 @@
         TypedArray a = mContext.obtainStyledAttributes(com.android.internal.R.styleable.Theme);
         mSeparatorDrawable = a.getDrawable(com.android.internal.R.styleable.Theme_dividerVertical);
         a.recycle();
-        mDividerPadding = DIVIDER_PADDING * mContext.getResources().getDisplayMetrics().density;
+        float density = mContext.getResources().getDisplayMetrics().density;
+        mDividerPadding = DIVIDER_PADDING * density;
+        mCrumbPadding = (int) (CRUMB_PADDING * density);
         addBackButton();
     }
 
@@ -359,14 +363,12 @@
         private TextView makeCrumbView(String name) {
             TextView tv = new TextView(mContext);
             tv.setTextAppearance(mContext, android.R.style.TextAppearance_Medium);
-            tv.setPadding(16, 0, 16, 0);
+            tv.setPadding(mCrumbPadding, 0, mCrumbPadding, 0);
             tv.setGravity(Gravity.CENTER_VERTICAL);
             tv.setText(name);
             tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                     LayoutParams.MATCH_PARENT));
-            tv.setMaxWidth(mContext.getResources().getInteger(
-                    R.integer.max_width_crumb));
-            tv.setMaxLines(1);
+            tv.setSingleLine();
             tv.setEllipsize(TextUtils.TruncateAt.END);
             return tv;
         }