Implement DownloadClient using HttpURLConnection

The version of OkHttp used in AOSP doesn't handle dynamic table size
updates [1] properly [2]. Instead of fixing OkHttp or importing a
prebuilt updated version, implement a new download client only using
HttpURLConnection, which seems to work properly.

[1] https://tools.ietf.org/html/rfc7541#section-6.3
[2] https://trac.nginx.org/nginx/ticket/1397

Change-Id: I3eedf7326f2017812c4a12d41f9ea028d255f7a8
This commit is contained in:
Gabriele M
2017-11-11 15:44:29 +01:00
parent 7aa3a999d8
commit 9dc1349c1a
7 changed files with 267 additions and 324 deletions

View File

@@ -385,11 +385,18 @@ public class UpdatesActivity extends UpdatesListActivity {
}
};
final DownloadClient downloadClient = new DownloadClient.Builder()
.setUrl(url)
.setDestination(jsonFileTmp)
.setDownloadCallback(callback)
.build();
final DownloadClient downloadClient;
try {
downloadClient = new DownloadClient.Builder()
.setUrl(url)
.setDestination(jsonFileTmp)
.setDownloadCallback(callback)
.build();
} catch (IOException exception) {
Log.e(TAG, "Could not build download client");
showSnackbar(R.string.snack_updates_check_failed, Snackbar.LENGTH_LONG);
return;
}
progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override