summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2023-08-19 10:52:43 +0200
committerByteHamster <ByteHamster@users.noreply.github.com>2023-08-19 11:21:52 +0200
commit18ab4ab8c6e3f957fec059b6214a45c90a3b2786 (patch)
tree81188108514a7eb3bf889fc9d69e264044c2d7a3 /core
parent4f6b563e3fd42fa444a4b5ddcc5768ef4c85e641 (diff)
downloadAntennaPod-18ab4ab8c6e3f957fec059b6214a45c90a3b2786.zip
Fix race condition in progress notification
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/EpisodeDownloadWorker.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/EpisodeDownloadWorker.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/EpisodeDownloadWorker.java
index 56aee63a2..af5b5c9a4 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/EpisodeDownloadWorker.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/EpisodeDownloadWorker.java
@@ -270,17 +270,20 @@ public class EpisodeDownloadWorker extends Worker {
private Notification generateProgressNotification() {
StringBuilder bigTextB = new StringBuilder();
- Map<String, Integer> progressCopy = new HashMap<>(notificationProgress);
+ Map<String, Integer> progressCopy;
+ synchronized (notificationProgress) {
+ progressCopy = new HashMap<>(notificationProgress);
+ }
for (Map.Entry<String, Integer> entry : progressCopy.entrySet()) {
bigTextB.append(String.format(Locale.getDefault(), "%s (%d%%)\n", entry.getKey(), entry.getValue()));
}
String bigText = bigTextB.toString().trim();
String contentText;
- if (notificationProgress.size() == 1) {
+ if (progressCopy.size() == 1) {
contentText = bigText;
} else {
contentText = getApplicationContext().getResources().getQuantityString(R.plurals.downloads_left,
- notificationProgress.size(), notificationProgress.size());
+ progressCopy.size(), progressCopy.size());
}
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(),
NotificationUtils.CHANNEL_ID_DOWNLOADING);