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 c7e8d3593157126d6ab9fd3dd1fe54e1f4a3f13c..10c0543023482fc294795ffbaa83867ba45c051d 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
@@ -115,8 +115,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; |
@@ -193,6 +191,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; |
@@ -914,28 +913,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.removeModelObserver(this); |
} |
- bookmarkModel.removeModelObserver(this); |
- } |
- }; |
- |
- if (bookmarkModel.isBookmarkModelLoaded()) { |
- modelObserver.bookmarkModelLoaded(); |
- } else { |
- bookmarkModel.addModelObserver(modelObserver); |
+ }; |
+ bookmarkModel.addModelObserver(mBookmarkObserver); |
} |
} else { |
Intent intent = new Intent(this, ManageBookmarkActivity.class); |