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);