From 1795bd8b11885beb434655346850bfbf93b456b0 Mon Sep 17 00:00:00 2001 From: Gabriele M Date: Wed, 5 Jul 2017 23:35:14 +0200 Subject: [PATCH] Report if a failure is following a download abort --- src/org/lineageos/updater/DownloadClient.java | 13 ++++++++----- src/org/lineageos/updater/UpdatesActivity.java | 2 +- src/org/lineageos/updater/UpdatesCheckReceiver.java | 2 +- .../updater/controller/UpdaterController.java | 4 ++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/org/lineageos/updater/DownloadClient.java b/src/org/lineageos/updater/DownloadClient.java index 8a2fe8e..d52740a 100644 --- a/src/org/lineageos/updater/DownloadClient.java +++ b/src/org/lineageos/updater/DownloadClient.java @@ -43,10 +43,12 @@ public class DownloadClient { private static final Object DOWNLOAD_TAG = new Object(); + private boolean mCancelled = false; + public interface DownloadCallback { void onResponse(int statusCode, String url, Headers headers); void onSuccess(String body); - void onFailure(); + void onFailure(boolean cancelled); } public interface ProgressListener { @@ -103,6 +105,7 @@ public class DownloadClient { new Thread(new Runnable() { @Override public void run() { + mCancelled = true; mClient.cancel(DOWNLOAD_TAG); } }).start(); @@ -116,8 +119,8 @@ public class DownloadClient { mClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { - Log.d(TAG, "Download failed", e); - callback.onFailure(); + Log.d(TAG, "Download failed, cancelled=" + mCancelled, e); + callback.onFailure(mCancelled); } @Override @@ -177,7 +180,7 @@ public class DownloadClient { @Override public void onFailure(Request request, IOException e) { Log.d(TAG, "Download failed", e); - callback.onFailure(); + callback.onFailure(mCancelled); } @Override @@ -190,7 +193,7 @@ public class DownloadClient { Log.d(TAG, "The server fulfilled the partial content request"); } else if (!isSuccessful(response.code())) { Log.e(TAG, "The server replied with code " + response.code()); - callback.onFailure(); + callback.onFailure(mCancelled); return; } diff --git a/src/org/lineageos/updater/UpdatesActivity.java b/src/org/lineageos/updater/UpdatesActivity.java index 55739ef..2aacf43 100644 --- a/src/org/lineageos/updater/UpdatesActivity.java +++ b/src/org/lineageos/updater/UpdatesActivity.java @@ -156,7 +156,7 @@ public class UpdatesActivity extends AppCompatActivity { Log.d(TAG, "Checking " + url); DownloadClient.downloadFile(url, jsonFile, new DownloadClient.DownloadCallback() { @Override - public void onFailure() { + public void onFailure(boolean cancelled) { Log.e(TAG, "Could not download updates list"); } diff --git a/src/org/lineageos/updater/UpdatesCheckReceiver.java b/src/org/lineageos/updater/UpdatesCheckReceiver.java index 713db53..1a29433 100644 --- a/src/org/lineageos/updater/UpdatesCheckReceiver.java +++ b/src/org/lineageos/updater/UpdatesCheckReceiver.java @@ -65,7 +65,7 @@ public class UpdatesCheckReceiver extends BroadcastReceiver { String url = Utils.getServerURL(context); DownloadClient.downloadFile(url, jsonNew, new DownloadClient.DownloadCallback() { @Override - public void onFailure() { + public void onFailure(boolean cancelled) { Log.e(TAG, "Could not download updates list, scheduling new check"); scheduleUpdatesCheck(context); } diff --git a/src/org/lineageos/updater/controller/UpdaterController.java b/src/org/lineageos/updater/controller/UpdaterController.java index 66e5990..0ad4e8a 100644 --- a/src/org/lineageos/updater/controller/UpdaterController.java +++ b/src/org/lineageos/updater/controller/UpdaterController.java @@ -177,9 +177,9 @@ public class UpdaterController implements UpdaterControllerInt { } @Override - public void onFailure() { + public void onFailure(boolean cancelled) { // The client is null if we intentionally stopped the download - boolean cancelled = mDownloads.get(downloadId).mDownloadClient == null; + cancelled = mDownloads.get(downloadId).mDownloadClient == null; UpdateDownload update = mDownloads.get(downloadId).mUpdate; if (cancelled) { Log.d(TAG, "Download cancelled");