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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java

Issue 1773403004: Move some offline-related functions into OfflinePageBridge, from BookmarkUtils. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixup comment style. Created 4 years, 9 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
index 95941a86479630b155ab5dc3aee0cb0f71a25d7f..5a6b260011939de8f8464e4d8a6d22da70d3acf5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
@@ -25,10 +25,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkModel.AddBookmarkCallback;
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.ntp.NewTabPageUma;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
-import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceCallback;
-import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceDialog;
-import org.chromium.chrome.browser.offlinepages.OfflinePageOpenStorageSettingsDialog;
-import org.chromium.chrome.browser.offlinepages.OfflinePageStorageSpacePolicy;
import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
import org.chromium.chrome.browser.snackbar.Snackbar;
import org.chromium.chrome.browser.snackbar.SnackbarManager;
@@ -73,6 +69,7 @@ public class BookmarkUtils {
parent = bookmarkModel.getDefaultFolder();
}
+ // The bookmark model will be destroyed in the created AddBookmarkCallback.
bookmarkModel.addBookmarkAsync(parent, bookmarkModel.getChildCount(parent), tab.getTitle(),
tab.getUrl(), webContentsToSave,
createAddBookmarkCallback(bookmarkModel, snackbarManager, activity,
@@ -96,6 +93,11 @@ public class BookmarkUtils {
return bookmarkModel.addBookmark(parent, bookmarkModel.getChildCount(parent), title, url);
}
+ /**
+ * Shows a snackbar after a bookmark has been added.
+ *
+ * NOTE: This method calls BookmarkModel#destroy() on the BookmarkModel that is passed to it.
+ */
private static void showSnackbarForAddingBookmark(final BookmarkModel bookmarkModel,
final SnackbarManager snackbarManager, final Activity activity,
final BookmarkId bookmarkId, final int saveResult, boolean isStorageAlmostFull,
@@ -105,8 +107,8 @@ public class BookmarkUtils {
if (offlinePageBridge == null) {
String folderName = bookmarkModel
.getBookmarkTitle(bookmarkModel.getBookmarkById(bookmarkId).getParentId());
- SnackbarController snackbarController = createSnackbarControllerForEditButton(
- bookmarkModel, activity, bookmarkId);
+ SnackbarController snackbarController =
+ createSnackbarControllerForEditButton(activity, bookmarkId);
if (getLastUsedParent(activity) == null) {
snackbar = Snackbar.make(activity.getString(R.string.bookmark_page_saved),
snackbarController, Snackbar.TYPE_ACTION);
@@ -131,8 +133,8 @@ public class BookmarkUtils {
: R.string.offline_pages_as_bookmarks_page_failed_to_save_storage_near_full);
// Show "Free up space" button.
buttonId = OfflinePageUtils.getStringId(R.string.offline_pages_free_up_space_title);
- snackbarController = createSnackbarControllerForFreeUpSpaceButton(
- bookmarkModel, snackbarManager, activity);
+ snackbarController = OfflinePageUtils.createSnackbarControllerForFreeUpSpaceButton(
+ offlinePageBridge, snackbarManager, activity);
} else {
if (saveResult == AddBookmarkCallback.SAVED) {
if (getLastUsedParent(activity) == null) {
@@ -150,8 +152,7 @@ public class BookmarkUtils {
}
}
if (snackbarController == null) {
- snackbarController = createSnackbarControllerForEditButton(
- bookmarkModel, activity, bookmarkId);
+ snackbarController = createSnackbarControllerForEditButton(activity, bookmarkId);
}
snackbar = Snackbar
.make(activity.getString(messageId, suffix), snackbarController,
@@ -160,8 +161,14 @@ public class BookmarkUtils {
}
snackbarManager.showSnackbar(snackbar);
+ bookmarkModel.destroy();
}
+ /**
+ * Shows a snackbar if necessary after adding a bookmark.
+ *
+ * NOTE: This callback will call BookmarkModel#destroy() on the passed-in bookmark model.
+ */
private static AddBookmarkCallback createAddBookmarkCallback(
final BookmarkModel bookmarkModel, final SnackbarManager snackbarManager,
final Activity activity, final WebContents webContents) {
@@ -199,67 +206,19 @@ public class BookmarkUtils {
* created bookmark.
*/
private static SnackbarController createSnackbarControllerForEditButton(
- final BookmarkModel bookmarkModel, final Activity activity,
- final BookmarkId bookmarkId) {
+ final Activity activity, final BookmarkId bookmarkId) {
return new SnackbarController() {
@Override
public void onDismissNoAction(Object actionData) {
RecordUserAction.record("EnhancedBookmarks.EditAfterCreateButtonNotClicked");
// This method will be called only if the snackbar is dismissed by timeout.
- bookmarkModel.destroy();
}
@Override
public void onAction(Object actionData) {
RecordUserAction.record("EnhancedBookmarks.EditAfterCreateButtonClicked");
startEditActivity(activity, bookmarkId, (WebContents) actionData);
- bookmarkModel.destroy();
- }
- };
- }
-
- /**
- * Creates a snackbar controller for a case where "Free up space" button is shown to clean up
- * space taken by the offline pages.
- */
- private static SnackbarController createSnackbarControllerForFreeUpSpaceButton(
- final BookmarkModel bookmarkModel, final SnackbarManager snackbarManager,
- final Activity activity) {
- return new SnackbarController() {
- @Override
- public void onDismissNoAction(Object actionData) {
- // This method will be called only if the snackbar is dismissed by timeout.
- RecordUserAction.record(
- "OfflinePages.SaveStatusSnackbar.FreeUpSpaceButtonNotClicked");
- bookmarkModel.destroy();
- }
-
- @Override
- public void onAction(Object actionData) {
- RecordUserAction.record("OfflinePages.SaveStatusSnackbar.FreeUpSpaceButtonClicked");
- OfflinePageStorageSpacePolicy policy =
- new OfflinePageStorageSpacePolicy(bookmarkModel.getOfflinePageBridge());
- if (policy.hasPagesToCleanUp()) {
- OfflinePageFreeUpSpaceCallback callback = new OfflinePageFreeUpSpaceCallback() {
- @Override
- public void onFreeUpSpaceDone() {
- snackbarManager.showSnackbar(
- OfflinePageFreeUpSpaceDialog.createStorageClearedSnackbar(
- activity));
- bookmarkModel.destroy();
- }
- @Override
- public void onFreeUpSpaceCancelled() {
- bookmarkModel.destroy();
- }
- };
- OfflinePageFreeUpSpaceDialog dialog = OfflinePageFreeUpSpaceDialog.newInstance(
- bookmarkModel.getOfflinePageBridge(), callback);
- dialog.show(activity.getFragmentManager(), null);
- } else {
- OfflinePageOpenStorageSettingsDialog.showDialog(activity);
- }
}
};
}
@@ -267,8 +226,7 @@ public class BookmarkUtils {
/**
* Gets whether bookmark manager should load offline page initially.
*/
- private static boolean shouldShowOfflinePageAtFirst(BookmarkModel model) {
- OfflinePageBridge bridge = model.getOfflinePageBridge();
+ private static boolean shouldShowOfflinePageAtFirst(OfflinePageBridge bridge) {
if (bridge == null || bridge.getAllPages().isEmpty() || OfflinePageUtils.isConnected()) {
return false;
}
@@ -296,8 +254,9 @@ public class BookmarkUtils {
*/
private static String getFirstUrlToLoad(Activity activity) {
BookmarkModel model = new BookmarkModel();
+ OfflinePageBridge bridge = model.getOfflinePageBridge();
try {
- if (shouldShowOfflinePageAtFirst(model)) {
+ if (shouldShowOfflinePageAtFirst(bridge)) {
return BookmarkUIState.createFilterUrl(BookmarkFilter.OFFLINE_PAGES,
false).toString();
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698