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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpacePolicy.java

Issue 1739503002: Makes the OfflinePageBridge.getAllPages method asynchronous. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix some comments. Created 4 years, 8 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/offlinepages/OfflinePageStorageSpacePolicy.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpacePolicy.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpacePolicy.java
index 68732e6b33d9cb195f9778636c00df0a89d74af9..06dc5e1d96640317c61b487e8108b2b9aad913c6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpacePolicy.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageStorageSpacePolicy.java
@@ -4,10 +4,15 @@
package org.chromium.chrome.browser.offlinepages;
+import org.chromium.base.Callback;
+
import java.util.List;
/**
* Manages the storage space policy for offline pages.
+ *
+ * When created, it records the size on disk that is being used, this value never changes after
+ * creation so make a new OfflinePageStorageSpacePolicy whenever a new measurement is desired.
*/
public class OfflinePageStorageSpacePolicy {
/**
@@ -19,19 +24,39 @@ public class OfflinePageStorageSpacePolicy {
*/
private static final long MINIMUM_CLEANUP_SIZE_BYTES = 5 * (1 << 20); // 5MB
- private OfflinePageBridge mOfflinePageBridge;
+ private long mSizeOfAllPages;
+ private long mSizeOfPagesToCleanUp;
/**
- * @param offlinePageBridge An object to access offline page functionality.
+ * Asynchronously creates an OffinePageStorageSpacePolicy which is prefilled with information
+ * about the state of the disk usage of Offline Pages.
*/
- public OfflinePageStorageSpacePolicy(OfflinePageBridge offlinePageBridge) {
+ public static void create(final OfflinePageBridge offlinePageBridge,
+ final Callback<OfflinePageStorageSpacePolicy> callback) {
assert offlinePageBridge != null;
- mOfflinePageBridge = offlinePageBridge;
+ offlinePageBridge.getAllPages(new OfflinePageBridge.MultipleOfflinePageItemCallback() {
+ @Override
+ public void onResult(List<OfflinePageItem> allPages) {
+ callback.onResult(new OfflinePageStorageSpacePolicy(offlinePageBridge, allPages));
+ }
+ });
+ }
+
+ /**
+ * Creates a policy object with the given list of offline pages.
+ *
+ * @param offlinePageBridge An object to access offline page functionality.
+ * @param offlinePages The list of all offline pages.
+ */
+ private OfflinePageStorageSpacePolicy(
+ OfflinePageBridge offlinePageBridge, List<OfflinePageItem> offlinePages) {
+ mSizeOfAllPages = getTotalSize(offlinePages);
+ mSizeOfPagesToCleanUp = getTotalSize(offlinePageBridge.getPagesToCleanUp());
}
/** @return Whether there exists offline pages that could be cleaned up to make space. */
public boolean hasPagesToCleanUp() {
- return getSizeOfPagesToCleanUp() > 0;
+ return mSizeOfPagesToCleanUp > 0;
}
/**
@@ -45,11 +70,11 @@ public class OfflinePageStorageSpacePolicy {
/** @return Total size, in bytes, of all saved pages. */
public long getSizeOfAllPages() {
- return getTotalSize(mOfflinePageBridge.getAllPages());
+ return mSizeOfAllPages;
}
private long getSizeOfPagesToCleanUp() {
- return getTotalSize(mOfflinePageBridge.getPagesToCleanUp());
+ return mSizeOfPagesToCleanUp;
}
private long getTotalSize(List<OfflinePageItem> offlinePages) {

Powered by Google App Engine
This is Rietveld 408576698