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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.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/OfflinePageBridge.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
index 5a8fbb24dec561f1412c8dea936ecd66621f700b..df4108f0e4f6fd717f367674ac38952ba0654258 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
@@ -55,7 +55,7 @@ public class OfflinePageBridge {
private static Integer sFeatureMode;
/**
- * Callback used to saving an offline page.
+ * Callback used when saving an offline page.
*/
public interface SavePageCallback {
/**
@@ -71,7 +71,7 @@ public class OfflinePageBridge {
}
/**
- * Callback used to deleting an offline page.
+ * Callback used when deleting an offline page.
*/
public interface DeletePageCallback {
/**
@@ -231,38 +231,29 @@ public class OfflinePageBridge {
/**
* Gets all available offline pages, returning results via the provided callback.
- * TODO(http://crbug.com/589526): Rename to just OfflinePageBridge#getAllPages and remove the
- * synchronous method.
*
* @param callback The callback to run when the operation completes.
*/
@VisibleForTesting
- public void getAllPagesAsync(final MultipleOfflinePageItemCallback callback) {
+ public void getAllPages(final MultipleOfflinePageItemCallback callback) {
runWhenLoaded(new Runnable() {
@Override
public void run() {
- callback.onResult(getAllPages());
+ callback.onResult(getAllPagesInternal());
}
});
}
- /** Returns via callback whether we have any offline pages at all. */
- @VisibleForTesting
- public void hasPages(final HasPagesCallback callback) {
+ /** Returns whether we have any offline pages at all. */
+ public boolean hasPages() {
// TODO(dewittj): Make this something faster than a full scan.
- getAllPagesAsync(new MultipleOfflinePageItemCallback() {
- @Override
- public void onResult(List<OfflinePageItem> allPages) {
- callback.onResult(!allPages.isEmpty());
- }
- });
+ return !getAllPagesInternal().isEmpty();
}
/**
- * @return Gets all available offline pages. Requires that the model is already loaded.
- * This function is deprecated. Use OfflinePageBridge#getAllPagesAsync.
+ * @return All available offline pages. Requires that the model is already loaded.
*/
- public List<OfflinePageItem> getAllPages() {
+ private List<OfflinePageItem> getAllPagesInternal() {
assert mIsNativeOfflinePageModelLoaded;
List<OfflinePageItem> result = new ArrayList<OfflinePageItem>();
nativeGetAllPages(mNativeOfflinePageBridge, result);
@@ -437,19 +428,10 @@ public class OfflinePageBridge {
*/
public void deletePage(final ClientId clientId, DeletePageCallback callback) {
assert mIsNativeOfflinePageModelLoaded;
+ ArrayList<ClientId> ids = new ArrayList<ClientId>();
+ ids.add(clientId);
- recordFreeSpaceHistograms("OfflinePages.DeletePage.FreeSpacePercentage",
- "OfflinePages.DeletePage.FreeSpaceMB");
-
- DeletePageCallback callbackWrapper = wrapCallbackWithHistogramReporting(callback);
- Set<Long> ids = getOfflineIdsForClientId(clientId);
- if (ids.size() == 0) {
- callback.onDeletePageDone(DeletePageResult.NOT_FOUND);
- return;
- }
- for (Long offlineId : ids) {
- nativeDeletePage(mNativeOfflinePageBridge, callbackWrapper, offlineId);
- }
+ deletePagesByClientId(ids, callback);
}
/**
@@ -675,8 +657,6 @@ public class OfflinePageBridge {
private native void nativeSavePage(long nativeOfflinePageBridge, SavePageCallback callback,
WebContents webContents, String clientNamespace, String clientId);
private native void nativeMarkPageAccessed(long nativeOfflinePageBridge, long offlineId);
- private native void nativeDeletePage(
- long nativeOfflinePageBridge, DeletePageCallback callback, long offlineId);
private native void nativeDeletePages(
long nativeOfflinePageBridge, DeletePageCallback callback, long[] offlineIds);
private native void nativeGetPagesToCleanUp(

Powered by Google App Engine
This is Rietveld 408576698