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