summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorianwen <ianwen@chromium.org>2015-07-27 10:16:51 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-27 17:17:43 +0000
commitee37b0dffaa16a90f199a0e539c9382e0d0da3e6 (patch)
treef010afe4b249f7f3c759d0585205a5060635c703
parent83487b6773bbda6a46191dede6010ec90e5a9ae8 (diff)
downloadchromium_src-ee37b0dffaa16a90f199a0e539c9382e0d0da3e6.zip
chromium_src-ee37b0dffaa16a90f199a0e539c9382e0d0da3e6.tar.gz
chromium_src-ee37b0dffaa16a90f199a0e539c9382e0d0da3e6.tar.bz2
Clean up Enhanced Bookmark's data acquiring logic
This CL: 1. makes EnhancedBookmarkModel a subclass of EnhancedBookmarksBridge, which frees us from boilerplating. Also EnhancedBookmarksBridge is removed, both for java and native. 2. removes enhanced_bookmarks java package and all class are unified in enhancedbookmarks package. 3. adds ianwen@ to enhancedbookmark folder's owner list. BUG=513509 Review URL: https://codereview.chromium.org/1247033009 Cr-Commit-Position: refs/heads/master@{#340491}
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java2
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java6
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksBridge.java72
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksModel.java315
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/OWNERS1
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkActionBar.java5
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkAddEditFolderActivity.java5
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkBookmarkRow.java1
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java2
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDrawerListView.java4
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java5
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java7
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java12
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java6
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUndoController.java3
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java1
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java150
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/OWNERS1
-rw-r--r--chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java5
-rw-r--r--chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java (renamed from chrome/android/javatests/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksModelTest.java)2
-rw-r--r--chrome/browser/android/chrome_jni_registrar.cc3
-rw-r--r--chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc139
-rw-r--r--chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h58
-rw-r--r--chrome/chrome_browser.gypi3
-rw-r--r--components/enhanced_bookmarks/BUILD.gn2
-rw-r--r--components/enhanced_bookmarks/enhanced_bookmark_utils.h2
26 files changed, 179 insertions, 633 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
index c6df9d9..c73bd45 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
@@ -488,7 +488,6 @@ public class BookmarksBridge {
* @return Id of the added node. If adding failed (index is invalid, string is null, parent is
* not editable), returns null.
*/
- @VisibleForTesting
public BookmarkId addFolder(BookmarkId parent, int index, String title) {
assert parent.getType() == BookmarkType.NORMAL;
assert index >= 0;
@@ -509,7 +508,6 @@ public class BookmarksBridge {
* @return Id of the added node. If adding failed (index is invalid, string is null, parent is
* not editable), returns null.
*/
- @VisibleForTesting
public BookmarkId addBookmark(BookmarkId parent, int index, String title, String url) {
assert parent.getType() == BookmarkType.NORMAL;
assert index >= 0;
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 166d31d..e3015cd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -72,8 +72,8 @@ import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.dom_distiller.DistilledPagePrefsView;
import org.chromium.chrome.browser.dom_distiller.ReaderModeActivityDelegate;
import org.chromium.chrome.browser.dom_distiller.ReaderModeManager;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkUtils;
+import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.gsa.ContextReporter;
import org.chromium.chrome.browser.gsa.GSAServiceClient;
@@ -943,14 +943,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
EnhancedBookmarkUtils.startEditActivity(ChromeActivity.this,
new BookmarkId(bookmarkId, BookmarkType.NORMAL));
}
- bookmarkModel.removeModelObserver(this);
+ bookmarkModel.removeObserver(this);
}
};
if (bookmarkModel.isBookmarkModelLoaded()) {
modelObserver.bookmarkModelLoaded();
} else {
- bookmarkModel.addModelObserver(modelObserver);
+ bookmarkModel.addObserver(modelObserver);
}
} else {
Intent intent = new Intent(this, ManageBookmarkActivity.class);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksBridge.java
deleted file mode 100644
index e0e2762..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksBridge.java
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.enhanced_bookmarks;
-
-import org.chromium.base.JNINamespace;
-import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.components.bookmarks.BookmarkId;
-
-/**
- * Access gate to C++ side enhanced bookmarks functionalities.
- */
-@JNINamespace("enhanced_bookmarks::android")
-public final class EnhancedBookmarksBridge {
- // TODO(ianwen): remove this bridge.
- private long mNativeEnhancedBookmarksBridge;
-
- /**
- * Creates a new enhanced bridge using the given profile.
- */
- public EnhancedBookmarksBridge(Profile profile) {
- mNativeEnhancedBookmarksBridge = nativeInit(profile);
- }
-
- public void destroy() {
- assert mNativeEnhancedBookmarksBridge != 0;
- nativeDestroy(mNativeEnhancedBookmarksBridge);
- mNativeEnhancedBookmarksBridge = 0;
- }
-
- /**
- * Adds a folder to the EnhancedBookmarkModel
- * @param parent The parent of this folder
- * @param index The position this folder should appear within the parent
- * @param title The title of the bookmark
- * @return The ID of the newly created folder.
- */
- public BookmarkId addFolder(BookmarkId parent, int index, String title) {
- return nativeAddFolder(mNativeEnhancedBookmarksBridge, parent, index, title);
- }
-
- /**
- * Adds a Bookmark to the EnhancedBookmarkModel
- * @param parent The parent of this bookmark
- * @param index The position this bookmark should appear within the parent
- * @param title The title of the bookmark
- * @param url URL of the bookmark
- * @return The ID of the newly created bookmark
- */
- public BookmarkId addBookmark(BookmarkId parent, int index, String title, String url) {
- return nativeAddBookmark(mNativeEnhancedBookmarksBridge, parent, index, title, url);
- }
-
- /**
- * Moves a bookmark to another folder, and append it at the end of the list of all children.
- * @param bookmarkId The item to be be moved
- * @param newParentId The new parent of the item
- */
- public void moveBookmark(BookmarkId bookmarkId, BookmarkId newParentId) {
- nativeMoveBookmark(mNativeEnhancedBookmarksBridge, bookmarkId, newParentId);
- }
-
- private native long nativeInit(Profile profile);
- private native void nativeDestroy(long nativeEnhancedBookmarksBridge);
- private native BookmarkId nativeAddFolder(long nativeEnhancedBookmarksBridge, BookmarkId parent,
- int index, String title);
- private native void nativeMoveBookmark(long nativeEnhancedBookmarksBridge,
- BookmarkId bookmarkId, BookmarkId newParentId);
- private native BookmarkId nativeAddBookmark(long nativeEnhancedBookmarksBridge,
- BookmarkId parent, int index, String title, String url);
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksModel.java b/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksModel.java
deleted file mode 100644
index 1750af7..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksModel.java
+++ /dev/null
@@ -1,315 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.enhanced_bookmarks;
-
-import org.chromium.base.ObserverList;
-import org.chromium.base.VisibleForTesting;
-import org.chromium.chrome.browser.BookmarksBridge;
-import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
-import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
-import org.chromium.chrome.browser.favicon.LargeIconBridge;
-import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback;
-import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.components.bookmarks.BookmarkId;
-import org.chromium.components.bookmarks.BookmarkType;
-import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
-
-import java.util.List;
-
-/**
- * A class that encapsulates all the (enhanced) bookmark model related logic. Essentially, this is a
- * collection of all the bookmark bridges with helper functions. It is recommended to create a new
- * instance of this class, instead of passing it around. However, be sure to call
- * {@link EnhancedBookmarksModel#destroy()} once you are done with it.
- */
-public class EnhancedBookmarksModel {
- // TODO(ianwen): make this class a subclass of BookmarksBridge.
- /**
- * Observer that listens to delete event. This interface is used by undo controllers to know
- * which bookmarks were deleted. Note this observer only listens to events that go through
- * enhanced bookmark model.
- */
- public interface EnhancedBookmarkDeleteObserver {
-
- /**
- * Callback being triggered immediately before bookmarks are deleted.
- * @param titles All titles of the bookmarks to be deleted.
- * @param isUndoable Whether the deletion is undoable.
- */
- void onDeleteBookmarks(String[] titles, boolean isUndoable);
- }
-
- private final BookmarksBridge mBookmarksBridge;
- private final EnhancedBookmarksBridge mEnhancedBookmarksBridge;
- private LargeIconBridge mLargeIconBridge;
- private ObserverList<EnhancedBookmarkDeleteObserver> mDeleteObservers = new ObserverList<>();
-
- /**
- * Initialize enhanced bookmark model for last used non-incognito profile with a java-side image
- * cache that has the given size.
- */
- public EnhancedBookmarksModel() {
- this(Profile.getLastUsedProfile().getOriginalProfile());
- }
-
- @VisibleForTesting
- public EnhancedBookmarksModel(Profile profile) {
- mBookmarksBridge = new BookmarksBridge(profile);
- mEnhancedBookmarksBridge = new EnhancedBookmarksBridge(profile);
- mLargeIconBridge = new LargeIconBridge();
- }
-
- /**
- * Clean up all the bridges. This must be called after done using this class.
- */
- public void destroy() {
- mBookmarksBridge.destroy();
- mEnhancedBookmarksBridge.destroy();
- mLargeIconBridge.destroy();
- }
-
- /**
- * @see BookmarksBridge#addObserver(BookmarkModelObserver)
- */
- public void addModelObserver(BookmarkModelObserver observer) {
- mBookmarksBridge.addObserver(observer);
- }
-
- /**
- * @see BookmarksBridge#removeObserver(BookmarkModelObserver)
- */
- public void removeModelObserver(BookmarkModelObserver observer) {
- mBookmarksBridge.removeObserver(observer);
- }
-
- /**
- * @see BookmarksBridge#isBookmarkModelLoaded()
- */
- public boolean isBookmarkModelLoaded() {
- return mBookmarksBridge.isBookmarkModelLoaded();
- }
-
- /**
- * @see BookmarksBridge#getBookmarkById(BookmarkId)
- */
- public BookmarkItem getBookmarkById(BookmarkId id) {
- return mBookmarksBridge.getBookmarkById(id);
- }
-
- /**
- * Add an observer that listens to delete events that go through enhanced bookmark model.
- * @param observer The observer to add.
- */
- public void addDeleteObserver(EnhancedBookmarkDeleteObserver observer) {
- mDeleteObservers.addObserver(observer);
- }
-
- /**
- * Remove the observer from listening to bookmark deleting events.
- * @param observer The observer to remove.
- */
- public void removeDeleteObserver(EnhancedBookmarkDeleteObserver observer) {
- mDeleteObservers.removeObserver(observer);
- }
-
- /**
- * Delete one or multiple bookmarks from model. If more than one bookmarks are passed here, this
- * method will group these delete operations into one undo bundle so that later if the user
- * clicks undo, all bookmarks deleted here will be restored.
- * @param bookmarks Bookmarks to delete. Note this array should not contain a folder and its
- * children, because deleting folder will also remove all its children, and
- * deleting children once more will cause errors.
- */
- public void deleteBookmarks(BookmarkId... bookmarks) {
- assert bookmarks != null && bookmarks.length > 0;
- // Store all titles of bookmarks.
- String[] titles = new String[bookmarks.length];
- boolean isUndoable = true;
- for (int i = 0; i < bookmarks.length; i++) {
- titles[i] = getBookmarkTitle(bookmarks[i]);
- isUndoable &= (bookmarks[i].getType() == BookmarkType.NORMAL);
- }
-
- if (bookmarks.length == 1) {
- mBookmarksBridge.deleteBookmark(bookmarks[0]);
- } else {
- mBookmarksBridge.startGroupingUndos();
- for (BookmarkId bookmark : bookmarks) {
- mBookmarksBridge.deleteBookmark(bookmark);
- }
- mBookmarksBridge.endGroupingUndos();
- }
-
- for (EnhancedBookmarkDeleteObserver observer : mDeleteObservers) {
- observer.onDeleteBookmarks(titles, isUndoable);
- }
- }
-
- /**
- * @see BookmarksBridge#getTopLevelFolderParentIDs()
- */
- public List<BookmarkId> getTopLevelFolderParentIDs() {
- return mBookmarksBridge.getTopLevelFolderParentIDs();
- }
-
- /**
- * @see BookmarksBridge#getTopLevelFolderIDs(boolean, boolean)
- */
- public List<BookmarkId> getTopLevelFolderIDs(boolean getSpecial, boolean getNormal) {
- return mBookmarksBridge.getTopLevelFolderIDs(getSpecial, getNormal);
- }
-
- /**
- * @see BookmarksBridge#getAllFoldersWithDepths(List, List)
- */
- public void getAllFoldersWithDepths(List<BookmarkId> bookmarkList, List<Integer> depthList) {
- mBookmarksBridge.getAllFoldersWithDepths(bookmarkList, depthList);
- }
-
- /**
- * @see BookmarksBridge#getMoveDestinations(List, List, List)
- */
- public void getMoveDestinations(List<BookmarkId> bookmarkList, List<Integer> depthList,
- List<BookmarkId> bookmarksToMove) {
- mBookmarksBridge.getMoveDestinations(bookmarkList, depthList, bookmarksToMove);
- }
-
- /**
- * @see BookmarksBridge#getRootFolderId()
- */
- public BookmarkId getRootFolderId() {
- return mBookmarksBridge.getRootFolderId();
- }
-
- /**
- * @see BookmarksBridge#getOtherFolderId()
- */
- public BookmarkId getOtherFolderId() {
- return mBookmarksBridge.getOtherFolderId();
- }
-
- /**
- * @see BookmarksBridge#getMobileFolderId()
- */
- public BookmarkId getMobileFolderId() {
- return mBookmarksBridge.getMobileFolderId();
- }
-
- /**
- * @see BookmarksBridge#getDesktopFolderId()
- */
- public BookmarkId getDesktopFolderId() {
- return mBookmarksBridge.getDesktopFolderId();
- }
-
- /**
- * @return The id of the default folder to add bookmarks/folders to.
- */
- public BookmarkId getDefaultFolder() {
- return mBookmarksBridge.getMobileFolderId();
- }
-
- /**
- * @see BookmarksBridge#getChildIDs(BookmarkId, boolean, boolean)
- */
- public List<BookmarkId> getChildIDs(BookmarkId id, boolean getFolders, boolean getBookmarks) {
- return mBookmarksBridge.getChildIDs(id, getFolders, getBookmarks);
- }
-
- public BookmarkId getChildAt(BookmarkId folderId, int index) {
- return mBookmarksBridge.getChildAt(folderId, index);
- }
-
- /**
- * @see BookmarksBridge#getAllBookmarkIDsOrderedByCreationDate()
- */
- public List<BookmarkId> getAllBookmarkIDsOrderedByCreationDate() {
- return mBookmarksBridge.getAllBookmarkIDsOrderedByCreationDate();
- }
-
- /**
- * @see BookmarksBridge#doesBookmarkExist(BookmarkId)
- */
- public boolean doesBookmarkExist(BookmarkId id) {
- return mBookmarksBridge.doesBookmarkExist(id);
- }
-
- /**
- * @see BookmarksBridge#setBookmarkTitle(BookmarkId, String)
- */
- public void setBookmarkTitle(BookmarkId bookmark, String title) {
- mBookmarksBridge.setBookmarkTitle(bookmark, title);
- }
-
- /**
- * @see BookmarksBridge#setBookmarkUrl(BookmarkId, String)
- */
- public void setBookmarkUrl(BookmarkId bookmark, String url) {
- mBookmarksBridge.setBookmarkUrl(bookmark, url);
- }
-
- /**
- *
- * @see EnhancedBookmarksBridge#addFolder(BookmarkId, int, String)
- */
- public BookmarkId addFolder(BookmarkId parent, int index, String title) {
- return mEnhancedBookmarksBridge.addFolder(parent, index, title);
- }
-
- /**
- * @see EnhancedBookmarksBridge#addBookmark(BookmarkId, int, String, String)
- */
- public BookmarkId addBookmark(BookmarkId parent, int index, String title, String url) {
- url = DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(url);
- return mEnhancedBookmarksBridge.addBookmark(parent, index, title, url);
- }
-
- /**
- * Calls {@link EnhancedBookmarksBridge#moveBookmark(BookmarkId, BookmarkId)} in a reversed
- * order of the list, in order to let the last item appear at the top.
- */
- public void moveBookmarks(List<BookmarkId> bookmarkIds, BookmarkId newParentId) {
- for (int i = bookmarkIds.size() - 1; i >= 0; i--) {
- mEnhancedBookmarksBridge.moveBookmark(bookmarkIds.get(i), newParentId);
- }
- }
-
- /**
- * @see BookmarkItem#getTitle()
- */
- public String getBookmarkTitle(BookmarkId bookmarkId) {
- BookmarkItem item = mBookmarksBridge.getBookmarkById(bookmarkId);
- return item.getTitle();
- }
-
- /**
- * @see LargeIconBridge#getLargeIconForUrl(Profile, String, int, LargeIconCallback)
- */
- public void getLargeIcon(String url, int minSize, LargeIconCallback callback) {
- mLargeIconBridge.getLargeIconForUrl(Profile.getLastUsedProfile(), url, minSize, callback);
- }
-
- /**
- * @see BookmarksBridge#undo()
- */
- public void undo() {
- mBookmarksBridge.undo();
- }
-
- /**
- * @see BookmarksBridge#loadEmptyPartnerBookmarkShimForTesting()
- */
- @VisibleForTesting
- public void loadEmptyPartnerBookmarkShimForTesting() {
- mBookmarksBridge.loadEmptyPartnerBookmarkShimForTesting();
- }
-
- /**
- * @see BookmarksBridge#isFolderVisible(BookmarkId)
- */
- public boolean isFolderVisible(BookmarkId bookmarkId) {
- return mBookmarksBridge.isFolderVisible(bookmarkId);
- }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/OWNERS
deleted file mode 100644
index 6f497bd..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-kkimlabs@chromium.org \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkActionBar.java
index 23da34a..c513686 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkActionBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkActionBar.java
@@ -18,7 +18,6 @@ import android.view.View.OnClickListener;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.browser.widget.NumberRollView;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;
@@ -190,13 +189,13 @@ public class EnhancedBookmarkActionBar extends Toolbar implements EnhancedBookma
public void onEnhancedBookmarkDelegateInitialized(EnhancedBookmarkDelegate delegate) {
mDelegate = delegate;
mDelegate.addUIObserver(this);
- delegate.getModel().addModelObserver(mBookmarkModelObserver);
+ delegate.getModel().addObserver(mBookmarkModelObserver);
}
@Override
public void onDestroy() {
mDelegate.removeUIObserver(this);
- mDelegate.getModel().removeModelObserver(mBookmarkModelObserver);
+ mDelegate.getModel().removeObserver(mBookmarkModelObserver);
}
@Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkAddEditFolderActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkAddEditFolderActivity.java
index be1b5d4..d1169182 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkAddEditFolderActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkAddEditFolderActivity.java
@@ -17,7 +17,6 @@ import android.widget.TextView;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.browser.widget.EmptyAlertEditText;
import org.chromium.chrome.browser.widget.TintedDrawable;
import org.chromium.components.bookmarks.BookmarkId;
@@ -116,7 +115,7 @@ public class EnhancedBookmarkAddEditFolderActivity extends EnhancedBookmarkActiv
EnhancedBookmarkUtils.setTaskDescriptionInDocumentMode(this,
getString(R.string.enhanced_bookmark_action_bar_edit_folder));
mModel = new EnhancedBookmarksModel();
- mModel.addModelObserver(mBookmarkModelObserver);
+ mModel.addObserver(mBookmarkModelObserver);
mIsAddMode = getIntent().getBooleanExtra(INTENT_IS_ADD_MODE, false);
if (mIsAddMode) {
List<String> stringList = getIntent().getStringArrayListExtra(
@@ -226,7 +225,7 @@ public class EnhancedBookmarkAddEditFolderActivity extends EnhancedBookmarkActiv
@Override
protected void onDestroy() {
super.onDestroy();
- mModel.removeModelObserver(mBookmarkModelObserver);
+ mModel.removeObserver(mBookmarkModelObserver);
mModel.destroy();
mModel = null;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkBookmarkRow.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkBookmarkRow.java
index d0cc7c9..06afe7f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkBookmarkRow.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkBookmarkRow.java
@@ -13,7 +13,6 @@ import android.util.AttributeSet;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
-import org.chromium.chrome.browser.enhanced_bookmarks.LaunchLocation;
import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkManager.UIState;
import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback;
import org.chromium.chrome.browser.widget.RoundedIconGenerator;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java
index 60b1f68..7685645 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDelegate.java
@@ -6,8 +6,6 @@ package org.chromium.chrome.browser.enhancedbookmarks;
import android.support.v4.widget.DrawerLayout;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
-import org.chromium.chrome.browser.enhanced_bookmarks.LaunchLocation;
import org.chromium.components.bookmarks.BookmarkId;
import java.util.List;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDrawerListView.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDrawerListView.java
index 16bc4eb..91f10f5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDrawerListView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDrawerListView.java
@@ -72,14 +72,14 @@ class EnhancedBookmarkDrawerListView extends ListView implements EnhancedBookmar
@Override
public void onEnhancedBookmarkDelegateInitialized(EnhancedBookmarkDelegate delegate) {
mDelegate = delegate;
- delegate.getModel().addModelObserver(mBookmarkModelObserver);
+ delegate.getModel().addObserver(mBookmarkModelObserver);
mAdapter.setEnhancedBookmarkUIDelegate(delegate);
delegate.addUIObserver(this);
}
@Override
public void onDestroy() {
- mDelegate.getModel().removeModelObserver(mBookmarkModelObserver);
+ mDelegate.getModel().removeObserver(mBookmarkModelObserver);
mDelegate.removeUIObserver(this);
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
index f1244d6..5b68ae1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
@@ -15,7 +15,6 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
import org.chromium.chrome.browser.UrlUtilities;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.browser.widget.EmptyAlertEditText;
import org.chromium.chrome.browser.widget.TintedDrawable;
import org.chromium.components.bookmarks.BookmarkId;
@@ -75,7 +74,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
mEnhancedBookmarksModel = new EnhancedBookmarksModel();
mBookmarkId = BookmarkId.getBookmarkIdFromString(
getIntent().getStringExtra(INTENT_BOOKMARK_ID));
- mEnhancedBookmarksModel.addModelObserver(mBookmarkModelObserver);
+ mEnhancedBookmarksModel.addObserver(mBookmarkModelObserver);
setContentView(R.layout.eb_edit);
mTitleEditText = (EmptyAlertEditText) findViewById(R.id.title_text);
@@ -143,7 +142,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
@Override
protected void onDestroy() {
- mEnhancedBookmarksModel.removeModelObserver(mBookmarkModelObserver);
+ mEnhancedBookmarksModel.removeObserver(mBookmarkModelObserver);
mEnhancedBookmarksModel.destroy();
mEnhancedBookmarksModel = null;
super.onDestroy();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java
index f61ff63..e6262ae 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java
@@ -22,7 +22,6 @@ import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.browser.widget.TintedDrawable;
import org.chromium.components.bookmarks.BookmarkId;
@@ -116,7 +115,7 @@ public class EnhancedBookmarkFolderSelectActivity extends EnhancedBookmarkActivi
EnhancedBookmarkUtils.setTaskDescriptionInDocumentMode(this,
getString(R.string.enhanced_bookmark_choose_folder));
mEnhancedBookmarksModel = new EnhancedBookmarksModel();
- mEnhancedBookmarksModel.addModelObserver(mBookmarkModelObserver);
+ mEnhancedBookmarksModel.addObserver(mBookmarkModelObserver);
List<String> stringList = getIntent().getStringArrayListExtra(INTENT_BOOKMARKS_TO_MOVE);
mBookmarksToMove = new ArrayList<>(stringList.size());
for (String string : stringList) {
@@ -124,7 +123,7 @@ public class EnhancedBookmarkFolderSelectActivity extends EnhancedBookmarkActivi
}
mIsCreatingFolder = getIntent().getBooleanExtra(INTENT_IS_CREATING_FOLDER, false);
if (mIsCreatingFolder) {
- mParentId = mEnhancedBookmarksModel.getDefaultFolder();
+ mParentId = mEnhancedBookmarksModel.getMobileFolderId();
} else {
mParentId = mEnhancedBookmarksModel.getBookmarkById(mBookmarksToMove.get(0))
.getParentId();
@@ -180,7 +179,7 @@ public class EnhancedBookmarkFolderSelectActivity extends EnhancedBookmarkActivi
@Override
protected void onDestroy() {
super.onDestroy();
- mEnhancedBookmarksModel.removeModelObserver(mBookmarkModelObserver);
+ mEnhancedBookmarksModel.removeObserver(mBookmarkModelObserver);
mEnhancedBookmarksModel.destroy();
mEnhancedBookmarksModel = null;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
index 30c9e87..75822be 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
@@ -86,7 +86,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
private int toSectionPosition(int globalPosition) {
int sectionPosition = globalPosition;
- for (List section : mSections) {
+ for (List<?> section : mSections) {
if (sectionPosition < section.size()) break;
sectionPosition -= section.size();
}
@@ -151,7 +151,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
}
private void removeItem(int position) {
- List section = getSection(position);
+ List<?> section = getSection(position);
assert section == mFolderSection || section == mBookmarkSection;
section.remove(toSectionPosition(position));
notifyItemRemoved(position);
@@ -162,7 +162,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
@Override
public int getItemCount() {
int count = 0;
- for (List section : mSections) {
+ for (List<?> section : mSections) {
count += section.size();
}
return count;
@@ -170,7 +170,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
@Override
public int getItemViewType(int position) {
- List section = getSection(position);
+ List<?> section = getSection(position);
if (section == mPromoHeaderSection) {
return PROMO_HEADER_VIEW;
@@ -247,7 +247,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
public void onEnhancedBookmarkDelegateInitialized(EnhancedBookmarkDelegate delegate) {
mDelegate = delegate;
mDelegate.addUIObserver(this);
- mDelegate.getModel().addModelObserver(mBookmarkModelObserver);
+ mDelegate.getModel().addObserver(mBookmarkModelObserver);
mPromoHeaderManager = new EnhancedBookmarkPromoHeader(mContext, this);
if (mPromoHeaderManager.shouldShow()) mPromoHeaderSection.add(null);
@@ -257,7 +257,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
@Override
public void onDestroy() {
mDelegate.removeUIObserver(this);
- mDelegate.getModel().removeModelObserver(mBookmarkModelObserver);
+ mDelegate.getModel().removeObserver(mBookmarkModelObserver);
mPromoHeaderManager.destroy();
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java
index 3d009d6..8d7a6cf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java
@@ -18,8 +18,6 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
import org.chromium.chrome.browser.UrlConstants;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
-import org.chromium.chrome.browser.enhanced_bookmarks.LaunchLocation;
import org.chromium.chrome.browser.ntp.NewTabPageUma;
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
@@ -109,7 +107,7 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate {
mContentView = (EnhancedBookmarkContentView) mMainView.findViewById(R.id.eb_content_view);
mUndoController = new EnhancedBookmarkUndoController(activity, mEnhancedBookmarksModel,
((SnackbarManageable) activity).getSnackbarManager());
- mEnhancedBookmarksModel.addModelObserver(mBookmarkModelObserver);
+ mEnhancedBookmarksModel.addObserver(mBookmarkModelObserver);
initializeIfBookmarkModelLoaded();
// Load partner bookmarks explicitly. We load partner bookmarks in the deferred startup
@@ -131,7 +129,7 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate {
mUndoController.destroy();
mUndoController = null;
}
- mEnhancedBookmarksModel.removeModelObserver(mBookmarkModelObserver);
+ mEnhancedBookmarksModel.removeObserver(mBookmarkModelObserver);
mEnhancedBookmarksModel.destroy();
mEnhancedBookmarksModel = null;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUndoController.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUndoController.java
index e8624d7..ed23428 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUndoController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUndoController.java
@@ -9,8 +9,7 @@ import android.content.Context;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel.EnhancedBookmarkDeleteObserver;
+import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarksModel.EnhancedBookmarkDeleteObserver;
import org.chromium.chrome.browser.snackbar.Snackbar;
import org.chromium.chrome.browser.snackbar.SnackbarManager;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
index 4282fc1..d7f524c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
@@ -21,7 +21,6 @@ import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.Tab;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.browser.favicon.FaviconHelper;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.snackbar.Snackbar;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java
new file mode 100644
index 0000000..6399c43
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java
@@ -0,0 +1,150 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.enhancedbookmarks;
+
+import org.chromium.base.ObserverList;
+import org.chromium.base.VisibleForTesting;
+import org.chromium.chrome.browser.BookmarksBridge;
+import org.chromium.chrome.browser.favicon.LargeIconBridge;
+import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.components.bookmarks.BookmarkId;
+import org.chromium.components.bookmarks.BookmarkType;
+import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
+
+import java.util.List;
+
+/**
+ * A class that encapsulates {@link BookmarksBridge} and provides extra features such as undo, large
+ * icon fetching, reader mode url redirecting, etc. This class should serve as the single class for
+ * the UI to acquire data from the backend.
+ */
+public class EnhancedBookmarksModel extends BookmarksBridge {
+ /**
+ * Observer that listens to delete event. This interface is used by undo controllers to know
+ * which bookmarks were deleted. Note this observer only listens to events that go through
+ * enhanced bookmark model.
+ */
+ public interface EnhancedBookmarkDeleteObserver {
+
+ /**
+ * Callback being triggered immediately before bookmarks are deleted.
+ * @param titles All titles of the bookmarks to be deleted.
+ * @param isUndoable Whether the deletion is undoable.
+ */
+ void onDeleteBookmarks(String[] titles, boolean isUndoable);
+ }
+
+ private LargeIconBridge mLargeIconBridge;
+ private ObserverList<EnhancedBookmarkDeleteObserver> mDeleteObservers = new ObserverList<>();
+
+ /**
+ * Initialize enhanced bookmark model for last used non-incognito profile.
+ */
+ public EnhancedBookmarksModel() {
+ this(Profile.getLastUsedProfile().getOriginalProfile());
+ }
+
+ @VisibleForTesting
+ public EnhancedBookmarksModel(Profile profile) {
+ super(profile);
+ mLargeIconBridge = new LargeIconBridge();
+ }
+
+ /**
+ * Clean up all the bridges. This must be called after done using this class.
+ */
+ @Override
+ public void destroy() {
+ super.destroy();
+ mLargeIconBridge.destroy();
+ }
+
+ /**
+ * Add an observer that listens to delete events that go through enhanced bookmark model.
+ * @param observer The observer to add.
+ */
+ public void addDeleteObserver(EnhancedBookmarkDeleteObserver observer) {
+ mDeleteObservers.addObserver(observer);
+ }
+
+ /**
+ * Remove the observer from listening to bookmark deleting events.
+ * @param observer The observer to remove.
+ */
+ public void removeDeleteObserver(EnhancedBookmarkDeleteObserver observer) {
+ mDeleteObservers.removeObserver(observer);
+ }
+
+ /**
+ * Delete one or multiple bookmarks from model. If more than one bookmarks are passed here, this
+ * method will group these delete operations into one undo bundle so that later if the user
+ * clicks undo, all bookmarks deleted here will be restored.
+ * @param bookmarks Bookmarks to delete. Note this array should not contain a folder and its
+ * children, because deleting folder will also remove all its children, and
+ * deleting children once more will cause errors.
+ */
+ public void deleteBookmarks(BookmarkId... bookmarks) {
+ assert bookmarks != null && bookmarks.length > 0;
+ // Store all titles of bookmarks.
+ String[] titles = new String[bookmarks.length];
+ boolean isUndoable = true;
+ for (int i = 0; i < bookmarks.length; i++) {
+ titles[i] = getBookmarkTitle(bookmarks[i]);
+ isUndoable &= (bookmarks[i].getType() == BookmarkType.NORMAL);
+ }
+
+ if (bookmarks.length == 1) {
+ deleteBookmark(bookmarks[0]);
+ } else {
+ startGroupingUndos();
+ for (BookmarkId bookmark : bookmarks) {
+ deleteBookmark(bookmark);
+ }
+ endGroupingUndos();
+ }
+
+ for (EnhancedBookmarkDeleteObserver observer : mDeleteObservers) {
+ observer.onDeleteBookmarks(titles, isUndoable);
+ }
+ }
+
+ /**
+ * Calls {@link BookmarksBridge#moveBookmark(BookmarkId, BookmarkId, int)} in a reversed
+ * order of the list, in order to let the last item appear at the top.
+ */
+ public void moveBookmarks(List<BookmarkId> bookmarkIds, BookmarkId newParentId) {
+ for (int i = bookmarkIds.size() - 1; i >= 0; i--) {
+ moveBookmark(bookmarkIds.get(i), newParentId, 0);
+ }
+ }
+
+ @Override
+ public BookmarkId addBookmark(BookmarkId parent, int index, String title, String url) {
+ url = DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(url);
+ return super.addBookmark(parent, index, title, url);
+ }
+
+ /**
+ * @see org.chromium.chrome.browser.BookmarksBridge.BookmarkItem#getTitle()
+ */
+ public String getBookmarkTitle(BookmarkId bookmarkId) {
+ return getBookmarkById(bookmarkId).getTitle();
+ }
+
+ /**
+ * @see LargeIconBridge#getLargeIconForUrl(Profile, String, int, LargeIconCallback)
+ */
+ public void getLargeIcon(String url, int minSize, LargeIconCallback callback) {
+ mLargeIconBridge.getLargeIconForUrl(Profile.getLastUsedProfile(), url, minSize, callback);
+ }
+
+ /**
+ * @return The id of the default folder to add bookmarks/folders to.
+ */
+ public BookmarkId getDefaultFolder() {
+ return getMobileFolderId();
+ }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/OWNERS
index e368087..8646c78 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/OWNERS
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/OWNERS
@@ -1 +1,2 @@
kkimlabs@chromium.org
+ianwen@chromium.org \ No newline at end of file
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java
index 318cd95..2b83654 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java
@@ -18,7 +18,6 @@ import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.UrlConstants;
-import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
import org.chromium.chrome.test.ChromeActivityTestCaseBase;
import org.chromium.chrome.test.util.ActivityUtils;
import org.chromium.chrome.test.util.BookmarkTestUtils;
@@ -71,14 +70,14 @@ public class EnhancedBookmarkTest extends ChromeActivityTestCaseBase<ChromeActiv
public void run() {
if (mBookmarkModel.isBookmarkModelLoaded()) loadedCallback.notifyCalled();
else {
- mBookmarkModel.addModelObserver(new BookmarkModelObserver() {
+ mBookmarkModel.addObserver(new BookmarkModelObserver() {
@Override
public void bookmarkModelChanged() {}
@Override
public void bookmarkModelLoaded() {
loadedCallback.notifyCalled();
- mBookmarkModel.removeModelObserver(this);
+ mBookmarkModel.removeObserver(this);
}
});
}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksModelTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java
index 27e1184..74c8475 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksModelTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package org.chromium.chrome.browser.enhanced_bookmarks;
+package org.chromium.chrome.browser.enhancedbookmarks;
import android.test.UiThreadTest;
import android.test.suitebuilder.annotation.SmallTest;
diff --git a/chrome/browser/android/chrome_jni_registrar.cc b/chrome/browser/android/chrome_jni_registrar.cc
index a541fc9..3dad11a 100644
--- a/chrome/browser/android/chrome_jni_registrar.cc
+++ b/chrome/browser/android/chrome_jni_registrar.cc
@@ -76,7 +76,6 @@
#include "chrome/browser/autofill/android/personal_data_manager_android.h"
#include "chrome/browser/dom_distiller/dom_distiller_service_factory_android.h"
#include "chrome/browser/dom_distiller/tab_utils_android.h"
-#include "chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h"
#include "chrome/browser/history/android/sqlite_cursor.h"
#include "chrome/browser/invalidation/invalidation_service_factory_android.h"
#include "chrome/browser/lifetime/application_lifetime_android.h"
@@ -215,8 +214,6 @@ static base::android::RegistrationMethod kChromeRegisteredMethods[] = {
{"DownloadOverwriteInfoBarDelegate",
RegisterDownloadOverwriteInfoBarDelegate},
{"EditBookmarkHelper", RegisterEditBookmarkHelper},
- {"EnhancedBookmarksBridge",
- enhanced_bookmarks::android::RegisterEnhancedBookmarksBridge},
{"ExternalPrerenderRequestHandler",
prerender::ExternalPrerenderHandlerAndroid::
RegisterExternalPrerenderHandlerAndroid},
diff --git a/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc b/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc
deleted file mode 100644
index 856af20..0000000
--- a/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h"
-
-#include "base/android/jni_array.h"
-#include "base/android/jni_string.h"
-#include "base/prefs/pref_service.h"
-#include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h"
-#include "chrome/browser/profiles/profile_android.h"
-#include "chrome/common/chrome_version_info.h"
-#include "chrome/common/pref_names.h"
-#include "components/bookmarks/browser/bookmark_utils.h"
-#include "components/bookmarks/common/android/bookmark_id.h"
-#include "components/bookmarks/common/android/bookmark_type.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/web_contents.h"
-#include "jni/EnhancedBookmarksBridge_jni.h"
-#include "ui/gfx/android/java_bitmap.h"
-
-using base::android::AttachCurrentThread;
-using base::android::ScopedJavaGlobalRef;
-using bookmarks::android::JavaBookmarkIdCreateBookmarkId;
-using bookmarks::android::JavaBookmarkIdGetId;
-using bookmarks::android::JavaBookmarkIdGetType;
-using bookmarks::BookmarkNode;
-using bookmarks::BookmarkType;
-using content::WebContents;
-using content::BrowserThread;
-
-namespace enhanced_bookmarks {
-namespace android {
-
-EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env,
- jobject obj,
- Profile* profile) : weak_java_ref_(env, obj) {
- profile_ = profile;
- enhanced_bookmark_model_ =
- EnhancedBookmarkModelFactory::GetForBrowserContext(profile_);
- enhanced_bookmark_model_->SetVersionSuffix(chrome::VersionInfo().OSType());
-}
-
-void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) {
- delete this;
-}
-
-ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::AddFolder(JNIEnv* env,
- jobject obj,
- jobject j_parent_id_obj,
- jint index,
- jstring j_title) {
- DCHECK(enhanced_bookmark_model_->loaded());
- long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
- const BookmarkNode* parent = bookmarks::GetBookmarkNodeByID(
- enhanced_bookmark_model_->bookmark_model(),
- static_cast<int64>(bookmark_id));
- const BookmarkNode* new_node = enhanced_bookmark_model_->AddFolder(
- parent, index, base::android::ConvertJavaStringToUTF16(env, j_title));
- if (!new_node) {
- NOTREACHED();
- return ScopedJavaLocalRef<jobject>();
- }
- ScopedJavaLocalRef<jobject> new_java_obj = JavaBookmarkIdCreateBookmarkId(
- env, new_node->id(), BookmarkType::BOOKMARK_TYPE_NORMAL);
- return new_java_obj;
-}
-
-void EnhancedBookmarksBridge::MoveBookmark(JNIEnv* env,
- jobject obj,
- jobject j_bookmark_id_obj,
- jobject j_parent_id_obj) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK(enhanced_bookmark_model_->loaded());
-
- long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj);
- const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(
- enhanced_bookmark_model_->bookmark_model(),
- static_cast<int64>(bookmark_id));
- if (!IsEditable(node)) {
- NOTREACHED();
- return;
- }
- bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
- const BookmarkNode* new_parent_node = bookmarks::GetBookmarkNodeByID(
- enhanced_bookmark_model_->bookmark_model(),
- static_cast<int64>(bookmark_id));
- enhanced_bookmark_model_->Move(node, new_parent_node,
- new_parent_node->child_count());
-}
-
-ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::AddBookmark(
- JNIEnv* env,
- jobject obj,
- jobject j_parent_id_obj,
- jint index,
- jstring j_title,
- jstring j_url) {
- DCHECK(enhanced_bookmark_model_->loaded());
- long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
- const BookmarkNode* parent = bookmarks::GetBookmarkNodeByID(
- enhanced_bookmark_model_->bookmark_model(),
- static_cast<int64>(bookmark_id));
-
- const BookmarkNode* new_node = enhanced_bookmark_model_->AddURL(
- parent,
- index,
- base::android::ConvertJavaStringToUTF16(env, j_title),
- GURL(base::android::ConvertJavaStringToUTF16(env, j_url)),
- base::Time::Now());
- if (!new_node) {
- NOTREACHED();
- return ScopedJavaLocalRef<jobject>();
- }
- ScopedJavaLocalRef<jobject> new_java_obj = JavaBookmarkIdCreateBookmarkId(
- env, new_node->id(), BookmarkType::BOOKMARK_TYPE_NORMAL);
- return new_java_obj;
-}
-
-bool EnhancedBookmarksBridge::IsEditable(const BookmarkNode* node) const {
- if (!node || (node->type() != BookmarkNode::FOLDER &&
- node->type() != BookmarkNode::URL)) {
- return false;
- }
- return profile_->GetPrefs()->GetBoolean(
- bookmarks::prefs::kEditBookmarksEnabled);
-}
-
-static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) {
- return reinterpret_cast<jlong>(new EnhancedBookmarksBridge(
- env, obj, ProfileAndroid::FromProfileAndroid(j_profile)));
-}
-
-bool RegisterEnhancedBookmarksBridge(JNIEnv* env) {
- return RegisterNativesImpl(env);
-}
-
-} // namespace android
-} // namespace enhanced_bookmarks
diff --git a/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h b/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h
deleted file mode 100644
index 007fa56..0000000
--- a/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_ENHANCED_BOOKMARKS_ANDROID_ENHANCED_BOOKMARKS_BRIDGE_H_
-#define CHROME_BROWSER_ENHANCED_BOOKMARKS_ANDROID_ENHANCED_BOOKMARKS_BRIDGE_H_
-
-#include "base/android/jni_android.h"
-#include "base/android/jni_weak_ref.h"
-#include "chrome/browser/profiles/profile.h"
-#include "components/bookmarks/browser/bookmark_model.h"
-#include "components/enhanced_bookmarks/enhanced_bookmark_model.h"
-
-namespace enhanced_bookmarks {
-
-class BookmarkImageServiceAndroid;
-
-namespace android {
-
-class EnhancedBookmarksBridge {
- public:
- EnhancedBookmarksBridge(JNIEnv* env, jobject obj, Profile* profile);
- void Destroy(JNIEnv*, jobject);
-
- base::android::ScopedJavaLocalRef<jobject> AddFolder(JNIEnv* env,
- jobject obj,
- jobject j_parent_id_obj,
- jint index,
- jstring j_title);
-
- void MoveBookmark(JNIEnv* env,
- jobject obj,
- jobject j_bookmark_id_obj,
- jobject j_parent_id_obj);
-
- base::android::ScopedJavaLocalRef<jobject> AddBookmark(
- JNIEnv* env,
- jobject obj,
- jobject j_parent_id_obj,
- jint index,
- jstring j_title,
- jstring j_url);
-
- private:
- bool IsEditable(const bookmarks::BookmarkNode* node) const;
-
- JavaObjectWeakGlobalRef weak_java_ref_;
- EnhancedBookmarkModel* enhanced_bookmark_model_; // weak
- Profile* profile_; // weak
- DISALLOW_COPY_AND_ASSIGN(EnhancedBookmarksBridge);
-};
-
-bool RegisterEnhancedBookmarksBridge(JNIEnv* env);
-
-} // namespace android
-} // namespace enhanced_bookmarks
-
-#endif // CHROME_BROWSER_ENHANCED_BOOKMARKS_ANDROID_ENHANCED_BOOKMARKS_BRIDGE_H_
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index fe968b1..4ea733d 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1367,8 +1367,6 @@
'browser/android/offline_pages/offline_page_mhtml_archiver.h',
'browser/android/offline_pages/offline_page_model_factory.cc',
'browser/android/offline_pages/offline_page_model_factory.h',
- 'browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc',
- 'browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h',
],
'chrome_browser_browser_process_sources': [
'browser/browser_process.cc',
@@ -1722,7 +1720,6 @@
'android/java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerServiceFactory.java',
'android/java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerTabUtils.java',
'android/java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java',
- 'android/java/src/org/chromium/chrome/browser/enhanced_bookmarks/EnhancedBookmarksBridge.java',
'android/java/src/org/chromium/chrome/browser/favicon/FaviconHelper.java',
'android/java/src/org/chromium/chrome/browser/favicon/LargeIconBridge.java',
'android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java',
diff --git a/components/enhanced_bookmarks/BUILD.gn b/components/enhanced_bookmarks/BUILD.gn
index 7702fbd..4a5f0fa 100644
--- a/components/enhanced_bookmarks/BUILD.gn
+++ b/components/enhanced_bookmarks/BUILD.gn
@@ -63,7 +63,7 @@ if (is_android) {
"enhanced_bookmark_utils.h",
]
outputs = [
- "org/chromium/chrome/browser/enhanced_bookmarks/LaunchLocation.java",
+ "org/chromium/chrome/browser/enhancedbookmarks/LaunchLocation.java",
]
}
}
diff --git a/components/enhanced_bookmarks/enhanced_bookmark_utils.h b/components/enhanced_bookmarks/enhanced_bookmark_utils.h
index c66fa9a..33a872f 100644
--- a/components/enhanced_bookmarks/enhanced_bookmark_utils.h
+++ b/components/enhanced_bookmarks/enhanced_bookmark_utils.h
@@ -20,7 +20,7 @@ namespace enhanced_bookmarks {
// Please sync with the corresponding histograms.xml.
//
// A Java counterpart will be generated for this enum.
-// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.enhanced_bookmarks
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.enhancedbookmarks
enum LaunchLocation {
ALL_ITEMS = 0,
UNCATEGORIZED = 1, // Deprecated.