Only edit existing bookmark when bookmarking from the title bar.

Bug:3425178
Change-Id: I32341270440231a870dad5b007d218654760548b
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index 1444862..fc3b0a9 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -73,6 +73,7 @@
     // Place on an edited bookmark to remove the saved thumbnail
     public static final String REMOVE_THUMBNAIL = "remove_thumbnail";
     public static final String USER_AGENT = "user_agent";
+    public static final String CHECK_FOR_DUPE = "check_for_dupe";
 
     /* package */ static final String EXTRA_EDIT_BOOKMARK = "bookmark";
     /* package */ static final String EXTRA_IS_FOLDER = "is_folder";
@@ -728,7 +729,8 @@
             mCurrentFolder = mRootFolder;
         }
         setupTopCrumb();
-        if (mEditingExisting || TextUtils.isEmpty(mOriginalUrl)) {
+        if (mEditingExisting || TextUtils.isEmpty(mOriginalUrl)
+                || !(mMap != null && mMap.getBoolean(CHECK_FOR_DUPE))) {
             onCurrentFolderFound();
         } else {
             // User is attempting to bookmark a site, rather than deliberately
diff --git a/src/com/android/browser/CombinedBookmarkHistoryView.java b/src/com/android/browser/CombinedBookmarkHistoryView.java
index 173abba..686e646 100644
--- a/src/com/android/browser/CombinedBookmarkHistoryView.java
+++ b/src/com/android/browser/CombinedBookmarkHistoryView.java
@@ -324,7 +324,7 @@
             mUiController.onUrlSelected(settings.getHomePage(), false);
             return true;
         case R.id.add_bookmark:
-            mUiController.bookmarkCurrentPage(mBookmarks.getFolderId());
+            mUiController.bookmarkCurrentPage(mBookmarks.getFolderId(), false);
             return true;
         case R.id.preferences_menu_id:
             Intent intent = new Intent(mActivity, BrowserPreferencesPage.class);
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index ad4d836..745a0f4 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1522,7 +1522,7 @@
                 break;
 
             case R.id.add_bookmark_menu_id:
-                bookmarkCurrentPage(AddBookmarkPage.DEFAULT_FOLDER_ID);
+                bookmarkCurrentPage(AddBookmarkPage.DEFAULT_FOLDER_ID, false);
                 break;
 
             case R.id.stop_reload_menu_id:
@@ -1854,9 +1854,13 @@
     /**
      * add the current page as a bookmark to the given folder id
      * @param folderId use -1 for the default folder
+     * @param canBeAnEdit If true, check to see whether the site is already
+     *          bookmarked, and if it is, edit that bookmark.  If false, and
+     *          the site is already bookmarked, do not attempt to edit the
+     *          existing bookmark.
      */
     @Override
-    public void bookmarkCurrentPage(long folderId) {
+    public void bookmarkCurrentPage(long folderId, boolean canBeAnEdit) {
         Intent i = new Intent(mActivity,
                 AddBookmarkPage.class);
         WebView w = getCurrentTopWebView();
@@ -1877,6 +1881,9 @@
         i.putExtra(BrowserContract.Bookmarks.FAVICON, w.getFavicon());
         i.putExtra(BrowserContract.Bookmarks.PARENT,
                 folderId);
+        if (canBeAnEdit) {
+            i.putExtra(AddBookmarkPage.CHECK_FOR_DUPE, true);
+        }
         // Put the dialog at the upper right of the screen, covering the
         // star on the title bar.
         i.putExtra("gravity", Gravity.RIGHT | Gravity.TOP);
diff --git a/src/com/android/browser/TitleBar.java b/src/com/android/browser/TitleBar.java
index bdef82e..b8ad2ef 100644
--- a/src/com/android/browser/TitleBar.java
+++ b/src/com/android/browser/TitleBar.java
@@ -215,7 +215,7 @@
                         mController.stopLoading();
                     } else {
                         mController.bookmarkCurrentPage(
-                                AddBookmarkPage.DEFAULT_FOLDER_ID);
+                                AddBookmarkPage.DEFAULT_FOLDER_ID, true);
                     }
                     button.setPressed(false);
                 } else if (mTitleBg.isPressed()) {
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index 0dcece6..dcd2215 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -241,7 +241,7 @@
             mUiController.getCurrentTopWebView().goForward();
         } else if (mStar == v) {
             mUiController.bookmarkCurrentPage(
-                    AddBookmarkPage.DEFAULT_FOLDER_ID);
+                    AddBookmarkPage.DEFAULT_FOLDER_ID, true);
         } else if (mAllButton == v) {
             mUiController.bookmarksOrHistoryPicker(false);
         } else if (mSearchButton == v) {
diff --git a/src/com/android/browser/UiController.java b/src/com/android/browser/UiController.java
index ae38cff..a16b44b 100644
--- a/src/com/android/browser/UiController.java
+++ b/src/com/android/browser/UiController.java
@@ -49,7 +49,7 @@
 
     void stopLoading();
 
-    void bookmarkCurrentPage(long folderId);
+    void bookmarkCurrentPage(long folderId, boolean canBeAnEdit);
 
     void bookmarksOrHistoryPicker(boolean openHistory);