Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(418)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java

Issue 1688033002: Rename EnhancedBookmarks to Bookmarks, part 1. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments from #2 Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java
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
deleted file mode 100644
index 31526d97e5202b22759d715ce9a77f3c10b5fc88..0000000000000000000000000000000000000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java
+++ /dev/null
@@ -1,322 +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.enhancedbookmarks;
-
-import android.content.Context;
-
-import org.chromium.base.ObserverList;
-import org.chromium.base.VisibleForTesting;
-import org.chromium.base.metrics.RecordHistogram;
-import org.chromium.chrome.browser.ChromeBrowserProviderClient;
-import org.chromium.chrome.browser.bookmark.BookmarksBridge;
-import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
-import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageModelObserver;
-import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SavePageCallback;
-import org.chromium.chrome.browser.offlinepages.OfflinePageItem;
-import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
-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 org.chromium.components.offlinepages.SavePageResult;
-import org.chromium.content_public.browser.WebContents;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-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 {
- private static final int FAVICON_MAX_CACHE_SIZE = 10 * 1024 * 1024; // 10MB
-
- /**
- * Callback for use with addBookmarkAsync / saveOfflinePage.
- */
- public interface AddBookmarkCallback {
- static final int SAVED = 0;
- static final int SKIPPED = 1;
- static final int ERROR = 2;
-
- /**
- * Called when the bookmark has been added.
- * @param bookmarkId ID of the bookmark that has been added.
- * @param result of saving an offline copy of the bookmarked page.
- */
- void onBookmarkAdded(BookmarkId bookmarkId, int saveResult);
- }
-
- /**
- * 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);
- }
-
- /** A comparator to sort the offline pages according to the most recent access time. */
- private static final Comparator<OfflinePageItem> sOfflinePageComparator =
- new Comparator<OfflinePageItem>() {
- @Override
- public int compare(OfflinePageItem o1, OfflinePageItem o2) {
- if (o1.getLastAccessTimeMs() > o2.getLastAccessTimeMs()) {
- return -1;
- } else if (o1.getLastAccessTimeMs() < o2.getLastAccessTimeMs()) {
- return 1;
- } else {
- return 0;
- }
- }
- };
-
- private ObserverList<EnhancedBookmarkDeleteObserver> mDeleteObservers = new ObserverList<>();
- private OfflinePageBridge mOfflinePageBridge;
- private boolean mIsOfflinePageModelLoaded;
- private OfflinePageModelObserver mOfflinePageModelObserver;
-
- /**
- * Initialize enhanced bookmark model for last used non-incognito profile.
- */
- public EnhancedBookmarksModel() {
- this(Profile.getLastUsedProfile().getOriginalProfile());
- }
-
- @VisibleForTesting
- public EnhancedBookmarksModel(Profile profile) {
- super(profile);
-
- // Note: we check if mOfflinePageBridge is null after this to determine if offline pages
- // feature is enabled. When it is enabled by default, we should check all the places
- // that checks for nullability of mOfflinePageBridge.
- if (OfflinePageBridge.isEnabled()) {
- mOfflinePageBridge = new OfflinePageBridge(profile);
- if (mOfflinePageBridge.isOfflinePageModelLoaded()) {
- mIsOfflinePageModelLoaded = true;
- } else {
- mOfflinePageModelObserver = new OfflinePageModelObserver() {
- @Override
- public void offlinePageModelLoaded() {
- mIsOfflinePageModelLoaded = true;
- if (isBookmarkModelLoaded()) {
- notifyBookmarkModelLoaded();
- }
- }
- };
- mOfflinePageBridge.addObserver(mOfflinePageModelObserver);
- }
- }
- }
-
- /**
- * Clean up all the bridges. This must be called after done using this class.
- */
- @Override
- public void destroy() {
- if (mOfflinePageBridge != null) {
- mOfflinePageBridge.removeObserver(mOfflinePageModelObserver);
- mOfflinePageBridge.destroy();
- mOfflinePageBridge = null;
- }
-
- super.destroy();
- }
-
- @Override
- public boolean isBookmarkModelLoaded() {
- return super.isBookmarkModelLoaded()
- && (mOfflinePageBridge == null || mIsOfflinePageModelLoaded);
- }
-
- /**
- * 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)} for the given
- * bookmark list. The bookmarks are appended at the end.
- */
- public void moveBookmarks(List<BookmarkId> bookmarkIds, BookmarkId newParentId) {
- int appenedIndex = getChildCount(newParentId);
- for (int i = 0; i < bookmarkIds.size(); ++i) {
- moveBookmark(bookmarkIds.get(i), newParentId, appenedIndex + i);
- }
- }
-
- /**
- * Add a new bookmark asynchronously.
- *
- * @param parent Folder where to add.
- * @param index The position where the bookmark will be placed in parent folder
- * @param title Title of the new bookmark.
- * @param url Url of the new bookmark
- * @param webContents A {@link WebContents} object for saving the offline copy. If null, the
- * saving should be skipped.
- * @param callback The callback to be invoked when the bookmark is added.
- */
- public void addBookmarkAsync(BookmarkId parent, int index, String title, String url,
- WebContents webContents, final AddBookmarkCallback callback) {
- url = DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(url);
- final BookmarkId enhancedId = addBookmark(parent, index, title, url);
-
- // If there is no need to save offline page, return now.
- if (mOfflinePageBridge == null || webContents == null) {
- callback.onBookmarkAdded(enhancedId, AddBookmarkCallback.SKIPPED);
- return;
- }
-
- saveOfflinePage(enhancedId, webContents, callback);
- }
-
- /**
- * Save an offline copy for the bookmarked page asynchronously.
- *
- * @param bookmarkId The ID of the page to save an offline copy.
- * @param webContents A {@link WebContents} object.
- * @param callback The callback to be invoked when the offline copy is saved.
- */
- public void saveOfflinePage(final BookmarkId bookmarkId, WebContents webContents,
- final AddBookmarkCallback callback) {
- assert bookmarkId.getId() != ChromeBrowserProviderClient.INVALID_BOOKMARK_ID;
- if (mOfflinePageBridge != null) {
- RecordHistogram.recordBooleanHistogram("OfflinePages.IncognitoSave",
- webContents.isIncognito());
- mOfflinePageBridge.savePage(webContents, bookmarkId, new SavePageCallback() {
- @Override
- public void onSavePageDone(int savePageResult, String url) {
- int saveResult;
- if (savePageResult == SavePageResult.SUCCESS) {
- saveResult = AddBookmarkCallback.SAVED;
- } else if (savePageResult == SavePageResult.SKIPPED) {
- saveResult = AddBookmarkCallback.SKIPPED;
- } else {
- saveResult = AddBookmarkCallback.ERROR;
- }
- callback.onBookmarkAdded(bookmarkId, saveResult);
- }
- });
- }
- }
-
- /**
- * @see org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkItem#getTitle()
- */
- public String getBookmarkTitle(BookmarkId bookmarkId) {
- return getBookmarkById(bookmarkId).getTitle();
- }
-
- /**
- * Retrieves the url to launch a bookmark or saved page. If latter, also marks it as being
- * accessed and reports the UMAs.
- *
- * @param context Context for checking connection.
- * @param bookmarkId ID of the bookmark to launch.
- * @return The launch URL.
- */
- public String getLaunchUrlAndMarkAccessed(Context context, BookmarkId bookmarkId) {
- String url = getBookmarkById(bookmarkId).getUrl();
- if (mOfflinePageBridge == null) return url;
-
- return OfflinePageUtils.getLaunchUrlAndMarkAccessed(context, mOfflinePageBridge,
- mOfflinePageBridge.getPageByBookmarkId(bookmarkId), url);
- }
-
- /**
- * @return The id of the default folder to add bookmarks/folders to.
- */
- public BookmarkId getDefaultFolder() {
- return getMobileFolderId();
- }
-
- /**
- * Gets a list of bookmark IDs of bookmarks that match a specified filter.
- *
- * @param filter Filter to be applied to the bookmarks.
- * @return A list of bookmark IDs of bookmarks matching the filter.
- */
- public List<BookmarkId> getBookmarkIDsByFilter(EnhancedBookmarkFilter filter) {
- assert filter == EnhancedBookmarkFilter.OFFLINE_PAGES;
- assert mOfflinePageBridge != null;
-
- List<OfflinePageItem> offlinePages = mOfflinePageBridge.getAllPages();
- Collections.sort(offlinePages, sOfflinePageComparator);
-
- // We are going to filter out all of the offline pages without a matching bookmark.
- // http://crbug.com/537806
- HashSet<BookmarkId> existingBookmarks =
- new HashSet<BookmarkId>(getAllBookmarkIDsOrderedByCreationDate());
-
- List<BookmarkId> bookmarkIds = new ArrayList<BookmarkId>();
- for (OfflinePageItem offlinePage : offlinePages) {
- if (existingBookmarks.contains(offlinePage.getBookmarkId())) {
- bookmarkIds.add(offlinePage.getBookmarkId());
- }
- }
- return bookmarkIds;
- }
-
- /**
- * @return Offline page bridge.
- */
- public OfflinePageBridge getOfflinePageBridge() {
- return mOfflinePageBridge;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698