diff options
author | ByteHamster <info@bytehamster.com> | 2023-08-19 10:52:43 +0200 |
---|---|---|
committer | ByteHamster <ByteHamster@users.noreply.github.com> | 2023-08-19 11:21:52 +0200 |
commit | 18ab4ab8c6e3f957fec059b6214a45c90a3b2786 (patch) | |
tree | 81188108514a7eb3bf889fc9d69e264044c2d7a3 /core/src | |
parent | 4f6b563e3fd42fa444a4b5ddcc5768ef4c85e641 (diff) | |
download | AntennaPod-18ab4ab8c6e3f957fec059b6214a45c90a3b2786.zip |
Fix race condition in progress notification
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/download/EpisodeDownloadWorker.java | 9 |
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); |