Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.bookmarks; | 5 package org.chromium.chrome.browser.bookmarks; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 | 8 |
| 9 import org.chromium.base.ObserverList; | 9 import org.chromium.base.ObserverList; |
| 10 import org.chromium.base.VisibleForTesting; | 10 import org.chromium.base.VisibleForTesting; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 49 * Called when the bookmark has been added. | 49 * Called when the bookmark has been added. |
| 50 * @param bookmarkId ID of the bookmark that has been added. | 50 * @param bookmarkId ID of the bookmark that has been added. |
| 51 * @param result of saving an offline copy of the bookmarked page. | 51 * @param result of saving an offline copy of the bookmarked page. |
| 52 */ | 52 */ |
| 53 void onBookmarkAdded(BookmarkId bookmarkId, int saveResult); | 53 void onBookmarkAdded(BookmarkId bookmarkId, int saveResult); |
| 54 } | 54 } |
| 55 | 55 |
| 56 /** | 56 /** |
| 57 * Observer that listens to delete event. This interface is used by undo con trollers to know | 57 * Observer that listens to delete event. This interface is used by undo con trollers to know |
| 58 * which bookmarks were deleted. Note this observer only listens to events t hat go through | 58 * which bookmarks were deleted. Note this observer only listens to events t hat go through |
| 59 * enhanced bookmark model. | 59 * bookmark model. |
| 60 */ | 60 */ |
| 61 public interface BookmarkDeleteObserver { | 61 public interface BookmarkDeleteObserver { |
| 62 | 62 |
| 63 /** | 63 /** |
| 64 * Callback being triggered immediately before bookmarks are deleted. | 64 * Callback being triggered immediately before bookmarks are deleted. |
| 65 * @param titles All titles of the bookmarks to be deleted. | 65 * @param titles All titles of the bookmarks to be deleted. |
| 66 * @param isUndoable Whether the deletion is undoable. | 66 * @param isUndoable Whether the deletion is undoable. |
| 67 */ | 67 */ |
| 68 void onDeleteBookmarks(String[] titles, boolean isUndoable); | 68 void onDeleteBookmarks(String[] titles, boolean isUndoable); |
| 69 } | 69 } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 82 } | 82 } |
| 83 } | 83 } |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 private ObserverList<BookmarkDeleteObserver> mDeleteObservers = new Observer List<>(); | 86 private ObserverList<BookmarkDeleteObserver> mDeleteObservers = new Observer List<>(); |
| 87 private OfflinePageBridge mOfflinePageBridge; | 87 private OfflinePageBridge mOfflinePageBridge; |
| 88 private boolean mIsOfflinePageModelLoaded; | 88 private boolean mIsOfflinePageModelLoaded; |
| 89 private OfflinePageModelObserver mOfflinePageModelObserver; | 89 private OfflinePageModelObserver mOfflinePageModelObserver; |
| 90 | 90 |
| 91 /** | 91 /** |
| 92 * Initialize enhanced bookmark model for last used non-incognito profile. | 92 * Initialize bookmark model for last used non-incognito profile. |
| 93 */ | 93 */ |
| 94 public BookmarkModel() { | 94 public BookmarkModel() { |
| 95 this(Profile.getLastUsedProfile().getOriginalProfile()); | 95 this(Profile.getLastUsedProfile().getOriginalProfile()); |
| 96 } | 96 } |
| 97 | 97 |
| 98 @VisibleForTesting | 98 @VisibleForTesting |
| 99 public BookmarkModel(Profile profile) { | 99 public BookmarkModel(Profile profile) { |
| 100 super(profile); | 100 super(profile); |
| 101 | 101 |
| 102 // Note: we check if mOfflinePageBridge is null after this to determine if offline pages | 102 // Note: we check if mOfflinePageBridge is null after this to determine if offline pages |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 135 super.destroy(); | 135 super.destroy(); |
| 136 } | 136 } |
| 137 | 137 |
| 138 @Override | 138 @Override |
| 139 public boolean isBookmarkModelLoaded() { | 139 public boolean isBookmarkModelLoaded() { |
| 140 return super.isBookmarkModelLoaded() | 140 return super.isBookmarkModelLoaded() |
| 141 && (mOfflinePageBridge == null || mIsOfflinePageModelLoaded); | 141 && (mOfflinePageBridge == null || mIsOfflinePageModelLoaded); |
| 142 } | 142 } |
| 143 | 143 |
| 144 /** | 144 /** |
| 145 * Add an observer that listens to delete events that go through enhanced bo okmark model. | 145 * Add an observer that listens to delete events that go through bookmark mo del. |
|
Ian Wen
2016/02/16 22:15:43
the bookmark model?
newt (away)
2016/02/16 23:49:50
Done.
| |
| 146 * @param observer The observer to add. | 146 * @param observer The observer to add. |
| 147 */ | 147 */ |
| 148 public void addDeleteObserver(BookmarkDeleteObserver observer) { | 148 public void addDeleteObserver(BookmarkDeleteObserver observer) { |
| 149 mDeleteObservers.addObserver(observer); | 149 mDeleteObservers.addObserver(observer); |
| 150 } | 150 } |
| 151 | 151 |
| 152 /** | 152 /** |
| 153 * Remove the observer from listening to bookmark deleting events. | 153 * Remove the observer from listening to bookmark deleting events. |
| 154 * @param observer The observer to remove. | 154 * @param observer The observer to remove. |
| 155 */ | 155 */ |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 208 * @param index The position where the bookmark will be placed in parent fol der | 208 * @param index The position where the bookmark will be placed in parent fol der |
| 209 * @param title Title of the new bookmark. | 209 * @param title Title of the new bookmark. |
| 210 * @param url Url of the new bookmark | 210 * @param url Url of the new bookmark |
| 211 * @param webContents A {@link WebContents} object for saving the offline co py. If null, the | 211 * @param webContents A {@link WebContents} object for saving the offline co py. If null, the |
| 212 * saving should be skipped. | 212 * saving should be skipped. |
| 213 * @param callback The callback to be invoked when the bookmark is added. | 213 * @param callback The callback to be invoked when the bookmark is added. |
| 214 */ | 214 */ |
| 215 public void addBookmarkAsync(BookmarkId parent, int index, String title, Str ing url, | 215 public void addBookmarkAsync(BookmarkId parent, int index, String title, Str ing url, |
| 216 WebContents webContents, final AddBookmarkCallb ack callback) { | 216 WebContents webContents, final AddBookmarkCallb ack callback) { |
| 217 url = DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(url); | 217 url = DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(url); |
| 218 final BookmarkId enhancedId = addBookmark(parent, index, title, url); | 218 final BookmarkId bookmarkId = addBookmark(parent, index, title, url); |
| 219 | 219 |
| 220 // If there is no need to save offline page, return now. | 220 // If there is no need to save offline page, return now. |
| 221 if (mOfflinePageBridge == null || webContents == null) { | 221 if (mOfflinePageBridge == null || webContents == null) { |
| 222 callback.onBookmarkAdded(enhancedId, AddBookmarkCallback.SKIPPED); | 222 callback.onBookmarkAdded(bookmarkId, AddBookmarkCallback.SKIPPED); |
| 223 return; | 223 return; |
| 224 } | 224 } |
| 225 | 225 |
| 226 saveOfflinePage(enhancedId, webContents, callback); | 226 saveOfflinePage(bookmarkId, webContents, callback); |
| 227 } | 227 } |
| 228 | 228 |
| 229 /** | 229 /** |
| 230 * Save an offline copy for the bookmarked page asynchronously. | 230 * Save an offline copy for the bookmarked page asynchronously. |
| 231 * | 231 * |
| 232 * @param bookmarkId The ID of the page to save an offline copy. | 232 * @param bookmarkId The ID of the page to save an offline copy. |
| 233 * @param webContents A {@link WebContents} object. | 233 * @param webContents A {@link WebContents} object. |
| 234 * @param callback The callback to be invoked when the offline copy is saved. | 234 * @param callback The callback to be invoked when the offline copy is saved. |
| 235 */ | 235 */ |
| 236 public void saveOfflinePage(final BookmarkId bookmarkId, WebContents webCont ents, | 236 public void saveOfflinePage(final BookmarkId bookmarkId, WebContents webCont ents, |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 313 return bookmarkIds; | 313 return bookmarkIds; |
| 314 } | 314 } |
| 315 | 315 |
| 316 /** | 316 /** |
| 317 * @return Offline page bridge. | 317 * @return Offline page bridge. |
| 318 */ | 318 */ |
| 319 public OfflinePageBridge getOfflinePageBridge() { | 319 public OfflinePageBridge getOfflinePageBridge() { |
| 320 return mOfflinePageBridge; | 320 return mOfflinePageBridge; |
| 321 } | 321 } |
| 322 } | 322 } |
| OLD | NEW |