Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
index c5b5b15510c210454705d8cba9a4c9f853655a21..1b6d99143f4380c01075f50139aca29bfeb27bdb 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
@@ -117,8 +117,6 @@ import org.chromium.chrome.browser.toolbar.ToolbarManager; |
import org.chromium.chrome.browser.util.FeatureUtilities; |
import org.chromium.chrome.browser.webapps.AddToHomescreenDialog; |
import org.chromium.chrome.browser.widget.ControlContainer; |
-import org.chromium.components.bookmarks.BookmarkId; |
-import org.chromium.components.bookmarks.BookmarkType; |
import org.chromium.content.browser.ContentReadbackHandler; |
import org.chromium.content.browser.ContentReadbackHandler.GetBitmapCallback; |
import org.chromium.content.browser.ContentViewCore; |
@@ -207,6 +205,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
private ChromeAppMenuPropertiesDelegate mAppMenuPropertiesDelegate; |
private AppMenuHandler mAppMenuHandler; |
private ToolbarManager mToolbarManager; |
+ private BookmarkModelObserver mBookmarkObserver; |
// Time in ms that it took took us to inflate the initial layout |
private long mInflateInitialLayoutDurationMs; |
@@ -952,28 +951,22 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
if (EnhancedBookmarkUtils.isEnhancedBookmarkEnabled(tabToBookmark.getProfile())) { |
final EnhancedBookmarksModel bookmarkModel = new EnhancedBookmarksModel(); |
+ if (bookmarkModel.isBookmarkModelLoaded()) { |
+ EnhancedBookmarkUtils.addOrEditBookmark(bookmarkId, bookmarkModel, |
+ tabToBookmark, getSnackbarManager(), ChromeActivity.this); |
+ } else if (mBookmarkObserver == null) { |
+ mBookmarkObserver = new BookmarkModelObserver() { |
+ @Override |
+ public void bookmarkModelChanged() {} |
- BookmarkModelObserver modelObserver = new BookmarkModelObserver() { |
- @Override |
- public void bookmarkModelChanged() {} |
- |
- @Override |
- public void bookmarkModelLoaded() { |
- if (bookmarkId == ChromeBrowserProviderClient.INVALID_BOOKMARK_ID) { |
- EnhancedBookmarkUtils.addBookmarkAndShowSnackbar(bookmarkModel, |
+ @Override |
+ public void bookmarkModelLoaded() { |
+ EnhancedBookmarkUtils.addOrEditBookmark(bookmarkId, bookmarkModel, |
tabToBookmark, getSnackbarManager(), ChromeActivity.this); |
- } else { |
- EnhancedBookmarkUtils.startEditActivity(ChromeActivity.this, |
- new BookmarkId(bookmarkId, BookmarkType.NORMAL)); |
+ bookmarkModel.removeObserver(this); |
} |
- bookmarkModel.removeObserver(this); |
- } |
- }; |
- |
- if (bookmarkModel.isBookmarkModelLoaded()) { |
- modelObserver.bookmarkModelLoaded(); |
- } else { |
- bookmarkModel.addObserver(modelObserver); |
+ }; |
+ bookmarkModel.addObserver(mBookmarkObserver); |
} |
} else { |
Intent intent = new Intent(this, ManageBookmarkActivity.class); |