From d327d61cc64dba132ee1a6ec8d1c4e7983fd7b89 Mon Sep 17 00:00:00 2001 From: Gabriele M Date: Fri, 7 Jul 2017 22:05:22 +0200 Subject: [PATCH] Send an event when update are canceled This allows to properly update the status of the application. In particular, when an update is deleted: - Cancel the associated notification, if any. - Remove the entry from the controller if the update is no longer available online. - Disable the resume button if download is partially downloaded and is no longer available online. --- src/org/lineageos/updater/UpdateDownload.java | 9 ++++++ .../lineageos/updater/UpdatesActivity.java | 4 +++ .../lineageos/updater/UpdatesListAdapter.java | 17 ++++++++++- .../updater/controller/UpdaterController.java | 28 +++++++++++++++---- .../updater/controller/UpdaterService.java | 13 +++++++++ 5 files changed, 65 insertions(+), 6 deletions(-) diff --git a/src/org/lineageos/updater/UpdateDownload.java b/src/org/lineageos/updater/UpdateDownload.java index 989ad8d9..5b8c9f37 100644 --- a/src/org/lineageos/updater/UpdateDownload.java +++ b/src/org/lineageos/updater/UpdateDownload.java @@ -27,6 +27,7 @@ public class UpdateDownload extends Update { private long mEta; private long mSpeed; private int mInstallProgress; + private boolean mAvailableOnline; public UpdateStatus getStatus() { return mStatus; @@ -91,4 +92,12 @@ public class UpdateDownload extends Update { public void setInstallProgress(int progress) { mInstallProgress = progress; } + + public boolean getAvailableOnline() { + return mAvailableOnline; + } + + public void setAvailableOnline(boolean availableOnline) { + mAvailableOnline = availableOnline; + } } diff --git a/src/org/lineageos/updater/UpdatesActivity.java b/src/org/lineageos/updater/UpdatesActivity.java index cf83e29e..1325d698 100644 --- a/src/org/lineageos/updater/UpdatesActivity.java +++ b/src/org/lineageos/updater/UpdatesActivity.java @@ -81,6 +81,9 @@ public class UpdatesActivity extends AppCompatActivity { UpdaterController.ACTION_INSTALL_PROGRESS.equals(intent.getAction())) { String downloadId = intent.getStringExtra(UpdaterController.EXTRA_DOWNLOAD_ID); mAdapter.notifyItemChanged(downloadId); + } else if (UpdaterController.ACTION_UPDATE_REMOVED.equals(intent.getAction())) { + String downloadId = intent.getStringExtra(UpdaterController.EXTRA_DOWNLOAD_ID); + mAdapter.removeItem(downloadId); } } }; @@ -99,6 +102,7 @@ public class UpdatesActivity extends AppCompatActivity { intentFilter.addAction(UpdaterController.ACTION_UPDATE_STATUS); intentFilter.addAction(UpdaterController.ACTION_DOWNLOAD_PROGRESS); intentFilter.addAction(UpdaterController.ACTION_INSTALL_PROGRESS); + intentFilter.addAction(UpdaterController.ACTION_UPDATE_REMOVED); LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, intentFilter); } diff --git a/src/org/lineageos/updater/UpdatesListAdapter.java b/src/org/lineageos/updater/UpdatesListAdapter.java index e19a26c1..3324ec7c 100644 --- a/src/org/lineageos/updater/UpdatesListAdapter.java +++ b/src/org/lineageos/updater/UpdatesListAdapter.java @@ -88,6 +88,13 @@ public class UpdatesListAdapter extends RecyclerView.Adapter