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

Side by Side 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.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-present eyeo GmbH 3 * Copyright (C) 2006-present eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 connection.getInputStream(), StandardCharsets.UTF_8))) 102 connection.getInputStream(), StandardCharsets.UTF_8)))
103 { 103 {
104 for (int ch = r.read(); ch != -1; ch = r.read()) 104 for (int ch = r.read(); ch != -1; ch = r.read())
105 { 105 {
106 sb.append((char) ch); 106 sb.append((char) ch);
107 } 107 }
108 job.responseText = sb.toString(); 108 job.responseText = sb.toString();
109 } 109 }
110 } 110 }
111 111
112 public void enqueueDownload(final URL url, final String id, final Map<String, String> headers) 112 public void enqueueDownload(final URL url, final String id, final Map<String, String> headers,
113 final boolean allowMetered)
113 { 114 {
114 this.lock(); 115 this.lock();
115 try 116 try
116 { 117 {
117 if (!this.enqueuedIds.contains(id)) 118 if (!this.enqueuedIds.contains(id))
118 { 119 {
119 this.enqueuedIds.add(id); 120 this.enqueuedIds.add(id);
120 this.downloadJobs.add(new DownloadJob(url, id, headers)); 121 this.downloadJobs.add(new DownloadJob(url, id, headers, allowMetered));
121 } 122 }
122 } 123 }
123 finally 124 finally
124 { 125 {
125 this.unlock(); 126 this.unlock();
126 } 127 }
127 } 128 }
128 129
129 public static Downloader create(final Engine engine) 130 public static Downloader create(final Engine engine)
130 { 131 {
(...skipping 29 matching lines...) Expand all
160 try 161 try
161 { 162 {
162 if (!this.downloader.downloaderEnabled) 163 if (!this.downloader.downloaderEnabled)
163 { 164 {
164 Thread.sleep(30000); 165 Thread.sleep(30000);
165 continue; 166 continue;
166 } 167 }
167 job = this.downloader.downloadJobs.poll(5 * 60, TimeUnit.SECONDS); 168 job = this.downloader.downloadJobs.poll(5 * 60, TimeUnit.SECONDS);
168 if (job != null) 169 if (job != null)
169 { 170 {
170 if (this.downloader.engine.canUseInternet()) 171 if (this.downloader.engine.canUseInternet(job.allowMetered))
171 { 172 {
172 Log.d(TAG, "Downloading '" + job.id + "' using " + job.url); 173 Log.d(TAG, "Downloading '" + job.id + "' using " + job.url);
173 download(job); 174 download(job);
174 Log.d(TAG, "Downloading '" + job.id + "' finished with response co de " 175 Log.d(TAG, "Downloading '" + job.id + "' finished with response co de "
175 + job.responseCode); 176 + job.responseCode);
176 this.downloader.lock(); 177 this.downloader.lock();
177 try 178 try
178 { 179 {
179 this.downloader.enqueuedIds.remove(job.id); 180 this.downloader.enqueuedIds.remove(job.id);
180 } 181 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 } 235 }
235 } 236 }
236 Log.d(TAG, "Handler thread finished"); 237 Log.d(TAG, "Handler thread finished");
237 } 238 }
238 } 239 }
239 240
240 private static class DownloadJob 241 private static class DownloadJob
241 { 242 {
242 private final URL url; 243 private final URL url;
243 private final String id; 244 private final String id;
245 private final boolean allowMetered;
244 private final HashMap<String, String> headers = new HashMap<>(); 246 private final HashMap<String, String> headers = new HashMap<>();
245 private int retryCount = 0; 247 private int retryCount = 0;
246 248
247 private int responseCode = 0; 249 private int responseCode = 0;
248 private final HashMap<String, String> responseHeaders = new HashMap<>(); 250 private final HashMap<String, String> responseHeaders = new HashMap<>();
249 private String responseText = null; 251 private String responseText = null;
250 252
251 public DownloadJob(final URL url, final String id, final Map<String, String> headers) 253 public DownloadJob(final URL url, final String id, final Map<String, String> headers, boolean allowMetered)
252 { 254 {
253 this.url = url; 255 this.url = url;
254 this.id = id; 256 this.id = id;
257 this.allowMetered = allowMetered;
255 if (headers != null) 258 if (headers != null)
256 { 259 {
257 this.headers.putAll(headers); 260 this.headers.putAll(headers);
258 } 261 }
259 } 262 }
260 } 263 }
261 } 264 }
OLDNEW

Powered by Google App Engine
This is Rietveld