diff --git a/res/values/strings.xml b/res/values/strings.xml
index b9d0f398..0bbd280e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -60,6 +60,10 @@
No new updates found
The update check failed. Please check your internet connection and try again later.
+ The download failed. Please check your internet connection and try again later.
+ The update verification failed.
+ Download completed.
+
LineageOS\n%1$s
Android %1$s
Last checked: %1$s (%2$s)
diff --git a/src/org/lineageos/updater/UpdatesActivity.java b/src/org/lineageos/updater/UpdatesActivity.java
index 1ef6f8fa..26279daa 100644
--- a/src/org/lineageos/updater/UpdatesActivity.java
+++ b/src/org/lineageos/updater/UpdatesActivity.java
@@ -88,6 +88,8 @@ public class UpdatesActivity extends AppCompatActivity {
@Override
public void onReceive(Context context, Intent intent) {
if (UpdaterController.ACTION_UPDATE_STATUS.equals(intent.getAction())) {
+ String downloadId = intent.getStringExtra(UpdaterController.EXTRA_DOWNLOAD_ID);
+ handleDownloadStatusChange(downloadId);
mAdapter.notifyDataSetChanged();
} else if (UpdaterController.ACTION_DOWNLOAD_PROGRESS.equals(intent.getAction()) ||
UpdaterController.ACTION_INSTALL_PROGRESS.equals(intent.getAction())) {
@@ -367,6 +369,21 @@ public class UpdatesActivity extends AppCompatActivity {
headerLastCheck.setText(lastCheckString);
}
+ private void handleDownloadStatusChange(String downloadId) {
+ UpdateDownload update = mUpdaterService.getUpdaterController().getUpdate(downloadId);
+ switch (update.getStatus()) {
+ case PAUSED_ERROR:
+ showSnackBar(R.string.snack_download_failed, Snackbar.LENGTH_LONG);
+ break;
+ case VERIFICATION_FAILED:
+ showSnackBar(R.string.snack_download_verification_failed, Snackbar.LENGTH_LONG);
+ break;
+ case VERIFIED:
+ showSnackBar(R.string.snack_download_verified, Snackbar.LENGTH_LONG);
+ break;
+ }
+ }
+
private void showSnackBar(int stringId, int duration) {
Snackbar.make(findViewById(R.id.main_container), stringId, duration).show();
}