| Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
|
| index defccbaba0c589b82898792f57de786b44f1e83c..1f10e912d4436c3b31f33228b3905423a635048b 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
|
| @@ -4,6 +4,7 @@
|
|
|
| package org.chromium.chrome.browser.offlinepages;
|
|
|
| +import android.app.Activity;
|
| import android.content.Context;
|
| import android.os.Environment;
|
|
|
| @@ -12,6 +13,7 @@ import org.chromium.base.metrics.RecordUserAction;
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| import org.chromium.chrome.browser.snackbar.Snackbar;
|
| +import org.chromium.chrome.browser.snackbar.SnackbarManager;
|
| import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| import org.chromium.components.offlinepages.FeatureMode;
|
| @@ -223,6 +225,47 @@ public class OfflinePageUtils {
|
| }
|
|
|
| /**
|
| + * Creates a snackbar controller for a case where "Free up space" button is shown to clean up
|
| + * space taken by the offline pages.
|
| + */
|
| + public static SnackbarController createSnackbarControllerForFreeUpSpaceButton(
|
| + final OfflinePageBridge offlinePageBridge, 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");
|
| + }
|
| +
|
| + @Override
|
| + public void onAction(Object actionData) {
|
| + RecordUserAction.record("OfflinePages.SaveStatusSnackbar.FreeUpSpaceButtonClicked");
|
| + OfflinePageStorageSpacePolicy policy =
|
| + new OfflinePageStorageSpacePolicy(offlinePageBridge);
|
| + if (policy.hasPagesToCleanUp()) {
|
| + OfflinePageFreeUpSpaceCallback callback = new OfflinePageFreeUpSpaceCallback() {
|
| + @Override
|
| + public void onFreeUpSpaceDone() {
|
| + snackbarManager.showSnackbar(
|
| + OfflinePageFreeUpSpaceDialog.createStorageClearedSnackbar(
|
| + activity));
|
| + }
|
| + @Override
|
| + public void onFreeUpSpaceCancelled() {}
|
| + };
|
| + OfflinePageFreeUpSpaceDialog dialog =
|
| + OfflinePageFreeUpSpaceDialog.newInstance(offlinePageBridge, callback);
|
| + dialog.show(activity.getFragmentManager(), null);
|
| + } else {
|
| + OfflinePageOpenStorageSettingsDialog.showDialog(activity);
|
| + }
|
| + }
|
| + };
|
| + }
|
| +
|
| + /**
|
| * Gets a snackbar controller that we can use to show our snackbar.
|
| */
|
| private static SnackbarController getSnackbarController(
|
|
|