More updates to the add bookmark page.

Bug:2953515
Bug:3183399

Use icons for menu and "Add to"
Use a TableLayout
Remove the duplicate title

Change-Id: I06e9b3010215ceae4d0212bccb61bc446e2c4e39
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index 5670881..25c9217 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -31,6 +31,7 @@
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
 import android.net.ParseException;
 import android.net.Uri;
 import android.net.WebAddress;
@@ -104,6 +105,7 @@
     private View mCrumbHolder;
     private ListView mListView;
     private boolean mSaveToHomeScreen;
+    private long mRootFolder;
 
     private static class Folder {
         String Name;
@@ -200,7 +202,11 @@
             if (data != null) {
                 Folder folder = (Folder) data;
                 mCurrentFolder = folder.Id;
-                mFolder.setText(folder.Name);
+                int resource = mCurrentFolder == mRootFolder ?
+                        R.drawable.ic_menu_bookmarks :
+                        com.android.internal.R.drawable.ic_menu_archive;
+                Drawable drawable = getResources().getDrawable(resource);
+                updateFolderLabel(folder.Name, drawable);
             }
         }
     }
@@ -250,14 +256,14 @@
     public boolean onMenuItemClick(MenuItem item) {
         switch(item.getItemId()) {
             case R.id.bookmarks:
-                mCurrentFolder = getBookmarksBarId(this);
-                mFolder.setText(item.getTitle());
+                mCurrentFolder = mRootFolder;
+                updateFolderLabel(item.getTitle(), item.getIcon());
                 mSaveToHomeScreen = false;
                 break;
             case R.id.home_screen:
                 // Create a short cut to the home screen
                 mSaveToHomeScreen = true;
-                mFolder.setText(item.getTitle());
+                updateFolderLabel(item.getTitle(), item.getIcon());
                 break;
             case R.id.other:
                 switchToFolderSelector();
@@ -309,7 +315,7 @@
         if (data != null) {
             currentFolder = ((Folder) data).Id;
         } else {
-            currentFolder = getBookmarksBarId(this);
+            currentFolder = mRootFolder;
         }
         values.put(BrowserContract.Bookmarks.PARENT, currentFolder);
         Uri uri = getContentResolver().insert(
@@ -404,7 +410,9 @@
                     }
                     String name = cursor.getString(titleIndex);
                     if (parent == mCurrentFolder) {
-                        mFolder.setText(name);
+                        Drawable draw = getResources().getDrawable(
+                                com.android.internal.R.drawable.ic_menu_archive);
+                        updateFolderLabel(name, draw);
                     }
                     folderStack.push(new Folder(name, parent));
                     parent = cursor.getLong(parentIndex);
@@ -421,6 +429,18 @@
         }
     }
 
+    /**
+     * Update the name and image to show where the bookmark will be added
+     * @param name Name of the location to save (folder name, bookmarks, or home
+     *             screen.
+     * @param drawable Image to show corresponding to the save location.
+     */
+    void updateFolderLabel(CharSequence name, Drawable drawable) {
+        mFolder.setText(name);
+        mFolder.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null,
+                null);
+    }
+
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position,
             long id) {
@@ -464,8 +484,6 @@
         super.onCreate(icicle);
         if (DEBUG_CRASH) {
             requestWindowFeature(Window.FEATURE_NO_TITLE);
-        } else {
-            requestWindowFeature(Window.FEATURE_LEFT_ICON);
         }
 
         mMap = getIntent().getExtras();
@@ -474,8 +492,7 @@
 
         Window window = getWindow();
         if (!DEBUG_CRASH) {
-            setTitle(R.string.bookmark_this_page);
-            window.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_list_bookmark);
+            setTitle("");
         }
 
         String title = null;
@@ -489,9 +506,6 @@
                 mMap = b;
                 mEditingExisting = true;
                 mFakeTitle.setText(R.string.edit_bookmark);
-                if (!DEBUG_CRASH) {
-                    setTitle(R.string.bookmark_this_page);
-                }
             } else {
                 int gravity = mMap.getInt("gravity", -1);
                 if (gravity != -1) {
@@ -505,8 +519,9 @@
             mTouchIconUrl = mMap.getString(TOUCH_ICON_URL);
             mCurrentFolder = mMap.getLong(BrowserContract.Bookmarks.PARENT, DEFAULT_FOLDER_ID);
         }
+        mRootFolder = getBookmarksBarId(this);
         if (mCurrentFolder == DEFAULT_FOLDER_ID) {
-            mCurrentFolder = getBookmarksBarId(this);
+            mCurrentFolder = mRootFolder;
         }
 
         mTitle = (EditText) findViewById(R.id.title);