Commit 4f7db45f authored by Gabriele M's avatar Gabriele M

Use Content-Length if greater than current size

The server may temporarily report an incorrect size that is smaller
than the actual size. Content-Length is expected to always be
accurate, but its value does not correspond to the full file size
when resuming downloads. Use Content-Length only if it's bigger
than the currently known size.

Change-Id: I2cc06bfbd2349f21528047b4840f549fbe84964e
parent 907486ad
......@@ -157,17 +157,15 @@ public class UpdaterController implements Controller {
@Override
public void onResponse(int statusCode, String url, DownloadClient.Headers headers) {
final Update update = mDownloads.get(downloadId).mUpdate;
if (update.getFileSize() <= 0) {
String contentLength = headers.get("Content-Length");
if (contentLength != null) {
try {
long size = Long.parseLong(contentLength);
if (size > 0) {
update.setFileSize(size);
}
} catch (NumberFormatException e) {
Log.e(TAG, "Could not get content-length");
String contentLength = headers.get("Content-Length");
if (contentLength != null) {
try {
long size = Long.parseLong(contentLength);
if (update.getFileSize() < size) {
update.setFileSize(size);
}
} catch (NumberFormatException e) {
Log.e(TAG, "Could not get content-length");
}
}
update.setStatus(UpdateStatus.DOWNLOADING);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment