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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegateImpl.java

Issue 2698593002: (Android) Blocking multiple scheduled downloads for the same URL (Closed)
Patch Set: Patch Created 3 years, 10 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/suggestions/SuggestionsNavigationDelegateImpl.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegateImpl.java
index 69691489464e1e9188917ce3415ddf09f5965e91..275dd012694020f7219b9de8366d82194a7e867e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegateImpl.java
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.suggestions;
import android.app.Activity;
+import org.chromium.base.Callback;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.NativePageHost;
import org.chromium.chrome.browser.UrlConstants;
@@ -17,6 +18,7 @@ import org.chromium.chrome.browser.ntp.snippets.KnownCategories;
import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
+import org.chromium.chrome.browser.offlinepages.SavePageRequest;
import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageNotificationBridge;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.profiles.Profile;
@@ -186,8 +188,21 @@ public class SuggestionsNavigationDelegateImpl implements SuggestionsNavigationD
}
private void saveUrlForOffline(String url) {
- OfflinePageNotificationBridge.showDownloadingToast(mActivity);
- OfflinePageBridge.getForProfile(mProfile).savePageLater(
- url, "ntp_suggestions", true /* userRequested */);
+ final String mUrl = url;
+ OfflinePageBridge.getForProfile(mProfile).getRequestsInQueue(
+ new Callback<SavePageRequest[]>() {
+ @Override
+ public void onResult(SavePageRequest[] requests) {
+ OfflinePageNotificationBridge.showDownloadingToast(mActivity);
+ for (int i = 0, len = requests.length; i < len; i++) {
+ if (requests[i].getUrl().equals(mUrl)) {
+ // Download was scheduled earlier,
+ return;
+ }
+ }
+ OfflinePageBridge.getForProfile(mProfile).savePageLater(
+ mUrl, "ntp_suggestions", true /* userRequested */);
+ }
+ });
}
}

Powered by Google App Engine
This is Rietveld 408576698