Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/engine/Downloader.java

Issue 29673565: Issue 6066 - Implement 'force update' functionality for subscriptions (Closed)
Patch Set: Fixes Created Jan. 23, 2018, 3:12 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/engine/Downloader.java
===================================================================
--- a/adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/engine/Downloader.java
+++ b/adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/engine/Downloader.java
@@ -104,25 +104,26 @@ final class Downloader
for (int ch = r.read(); ch != -1; ch = r.read())
{
sb.append((char) ch);
}
job.responseText = sb.toString();
}
}
- public void enqueueDownload(final URL url, final String id, final Map<String, String> headers)
+ public void enqueueDownload(final URL url, final String id, final Map<String, String> headers,
+ final boolean allowMetered)
{
this.lock();
try
{
if (!this.enqueuedIds.contains(id))
{
this.enqueuedIds.add(id);
- this.downloadJobs.add(new DownloadJob(url, id, headers));
+ this.downloadJobs.add(new DownloadJob(url, id, headers, allowMetered));
}
}
finally
{
this.unlock();
}
}
@@ -162,17 +163,17 @@ final class Downloader
if (!this.downloader.downloaderEnabled)
{
Thread.sleep(30000);
continue;
}
job = this.downloader.downloadJobs.poll(5 * 60, TimeUnit.SECONDS);
if (job != null)
{
- if (this.downloader.engine.canUseInternet())
+ if (this.downloader.engine.canUseInternet(job.allowMetered))
{
Log.d(TAG, "Downloading '" + job.id + "' using " + job.url);
download(job);
Log.d(TAG, "Downloading '" + job.id + "' finished with response code "
+ job.responseCode);
this.downloader.lock();
try
{
@@ -236,26 +237,28 @@ final class Downloader
Log.d(TAG, "Handler thread finished");
}
}
private static class DownloadJob
{
private final URL url;
private final String id;
+ private final boolean allowMetered;
private final HashMap<String, String> headers = new HashMap<>();
private int retryCount = 0;
private int responseCode = 0;
private final HashMap<String, String> responseHeaders = new HashMap<>();
private String responseText = null;
- public DownloadJob(final URL url, final String id, final Map<String, String> headers)
+ public DownloadJob(final URL url, final String id, final Map<String, String> headers, boolean allowMetered)
{
this.url = url;
this.id = id;
+ this.allowMetered = allowMetered;
if (headers != null)
{
this.headers.putAll(headers);
}
}
}
}

Powered by Google App Engine
This is Rietveld