Chromium Code Reviews| 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 faee49c00b0b27efecfd9f59f13d0d17521ab54d..c67e4d536973ab0b47339d6c0b8c14c6044e1404 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 |
| @@ -267,49 +267,77 @@ public class BookmarkUtils { |
| @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); |
| - } |
| + OfflinePageStorageSpacePolicy.create(bookmarkModel.getOfflinePageBridge(), |
| + new OfflinePageStorageSpacePolicy.CreateCallback() { |
| + @Override |
| + public void onCreateDone(OfflinePageStorageSpacePolicy policy) { |
| + if (policy.hasPagesToCleanUp()) { |
| + OfflinePageFreeUpSpaceCallback callback = |
|
fgorski
2016/02/26 21:31:10
extract callback creation from here.
As in earlier
dewittj
2016/03/01 22:28:52
Done.
|
| + 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); |
| + } |
| + } |
| + }); |
| } |
| }; |
| } |
| /** |
| - * Gets whether bookmark manager should load offline page initially. |
| + * Shows bookmark main UI. |
| + * |
| + * The initial url the bookmark manager shows depends on offline page status and some |
| + * experiments we run. |
| */ |
| - private static boolean shouldShowOfflinePageAtFirst(BookmarkModel model) { |
| + public static void showBookmarkManager(final Activity activity) { |
| + String lastUsedUrl = getLastUsedUrl(activity); |
| + final String defaultUrl = |
| + TextUtils.isEmpty(lastUsedUrl) ? UrlConstants.BOOKMARKS_URL : lastUsedUrl; |
| + |
| + final BookmarkModel model = new BookmarkModel(); |
| OfflinePageBridge bridge = model.getOfflinePageBridge(); |
| - if (bridge == null || bridge.getAllPages().isEmpty() || OfflinePageUtils.isConnected()) { |
| - return false; |
| + |
| + // If we are connected show the default URL. |
| + if (bridge == null || OfflinePageUtils.isConnected()) { |
| + openUrlOrStartActivityWithUrl(activity, defaultUrl); |
| + model.destroy(); |
| + return; |
| } |
| - return true; |
| - } |
| - /** |
| - * Shows bookmark main UI. |
| - */ |
| - public static void showBookmarkManager(Activity activity) { |
| - String url = getFirstUrlToLoad(activity); |
| + // Otherwise we want to show offline pages. If there aren't any, just default to the |
| + // regular list. |
| + bridge.hasPages(new OfflinePageBridge.HasPagesCallback() { |
| + @Override |
| + public void onHasPagesDone(boolean hasPages) { |
| + String url = defaultUrl; |
| + if (hasPages) { |
| + url = BookmarkUIState.createFilterUrl(BookmarkFilter.OFFLINE_PAGES, false) |
| + .toString(); |
| + } |
| + openUrlOrStartActivityWithUrl(activity, url); |
| + model.destroy(); |
| + } |
| + }); |
| + } |
| + private static void openUrlOrStartActivityWithUrl(Activity activity, String url) { |
| if (DeviceFormFactor.isTablet(activity)) { |
| openUrl(activity, url); |
| } else { |
| @@ -320,25 +348,6 @@ public class BookmarkUtils { |
| } |
| /** |
| - * The initial url the bookmark manager shows depends on offline page status and some |
| - * experiments we run. |
| - */ |
| - private static String getFirstUrlToLoad(Activity activity) { |
| - BookmarkModel model = new BookmarkModel(); |
| - try { |
| - if (shouldShowOfflinePageAtFirst(model)) { |
| - return BookmarkUIState.createFilterUrl(BookmarkFilter.OFFLINE_PAGES, |
| - false).toString(); |
| - } |
| - String lastUsedUrl = getLastUsedUrl(activity); |
| - if (!TextUtils.isEmpty(lastUsedUrl)) return lastUsedUrl; |
| - return UrlConstants.BOOKMARKS_URL; |
| - } finally { |
| - model.destroy(); |
| - } |
| - } |
| - |
| - /** |
| * Saves the last used url to preference. The saved url will be later queried by |
| * {@link #getLastUsedUrl(Context)} |
| */ |