Chromium Code Reviews| 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 e15e901b282ecccb34cdc1daedcf31757850d780..b623a95283481b56b58150c89ffe3ec0165ea444 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 |
| @@ -98,6 +98,16 @@ public class OfflinePageBridge { |
| } |
| /** |
| + * Callback that delivers information about one offline page entry. |
| + * |
| + * The returned item will be null if no items are found. |
| + */ |
| + public interface SingleOfflinePageItemCallback { |
| + @CalledByNative("SingleOfflinePageItemCallback") |
| + void onResult(OfflinePageItem item); |
| + } |
| + |
| + /** |
| * Callback used when determining whether we have any offline pages. |
| */ |
| public interface HasPagesCallback { |
| @@ -346,34 +356,31 @@ public class OfflinePageBridge { |
| @VisibleForTesting |
| public void getPagesByOfflineUrl( |
| final String offlineUrl, final MultipleOfflinePageItemCallback callback) { |
|
dewittj
2016/05/16 21:07:46
Let's just remove this method, since we have the c
chili
2016/05/16 23:06:41
Done.
|
| - runWhenLoaded(new Runnable() { |
| - @Override |
| - public void run() { |
| - List<OfflinePageItem> result = new ArrayList<>(); |
| - |
| - // TODO(http://crbug.com/589526) This native API returns only one item, but in the |
| - // future will return a list. |
| - OfflinePageItem item = |
| - nativeGetPageByOfflineUrl(mNativeOfflinePageBridge, offlineUrl); |
| - if (item != null) { |
| - result.add(item); |
| - } |
| - |
| - callback.onResult(result); |
| - } |
| - }); |
| + nativeGetPageByOfflineUrl( |
| + mNativeOfflinePageBridge, |
| + offlineUrl, |
| + new SingleOfflinePageItemCallback() { |
| + @Override |
| + public void onResult(OfflinePageItem item) { |
| + List<OfflinePageItem> result = new ArrayList<>(); |
| + if (item != null) { |
| + result.add(item); |
| + } |
| + callback.onResult(result); |
| + } |
| + }); |
| } |
| /** |
| - * Gets an offline page associated with a provided offline URL. |
| - * This method is deprecated. Use OfflinePageBridge#getPagesByOnlineUrl. |
| + * Get the offline page associated with the provided offline URL. |
| * |
| * @param string URL pointing to the offline copy of the web page. |
| - * @return An {@link OfflinePageItem} matching the offline URL or |
| - * <code>null</code> if not found. |
| + * @param SingleOfflinePageItemCallback callback to pass back the |
| + * matching {@link OfflinePageItem}, if any. |
|
dewittj
2016/05/16 21:07:46
nit: please mention that null is possible in the c
chili
2016/05/16 23:06:41
Assuming you mean to add @Nullable reference in ca
dewittj
2016/05/17 17:36:02
I was thinking in this comment. But you did that
|
| */ |
| - public OfflinePageItem getPageByOfflineUrl(String offlineUrl) { |
| - return nativeGetPageByOfflineUrl(mNativeOfflinePageBridge, offlineUrl); |
| + public void getPageByOfflineUrl( |
| + String offlineUrl, SingleOfflinePageItemCallback callback) { |
| + nativeGetPageByOfflineUrl(mNativeOfflinePageBridge, offlineUrl, callback); |
| } |
| /** |
| @@ -628,8 +635,10 @@ public class OfflinePageBridge { |
| native OfflinePageItem nativeGetPageByOfflineId(long nativeOfflinePageBridge, long offlineId); |
| private native OfflinePageItem nativeGetBestPageForOnlineURL( |
| long nativeOfflinePageBridge, String onlineURL); |
| - private native OfflinePageItem nativeGetPageByOfflineUrl( |
| - long nativeOfflinePageBridge, String offlineUrl); |
| + private native void nativeGetPageByOfflineUrl( |
| + long nativeOfflinePageBridge, |
| + String offlineUrl, |
| + SingleOfflinePageItemCallback callback); |
| private native void nativeSavePage(long nativeOfflinePageBridge, SavePageCallback callback, |
| WebContents webContents, String clientNamespace, String clientId); |
| private native void nativeSavePageLater( |