diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt index faef31ccbf..285082fa64 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/model/DownloadQueue.kt @@ -43,7 +43,7 @@ class DownloadQueue( if (download.status == Download.State.DOWNLOADING || download.status == Download.State.QUEUE) { download.status = Download.State.NOT_DOWNLOADED } - downloadListeners.forEach { it.updateDownload(download) } + callListeners(download) if (removed) { updatedRelay.call(Unit) } @@ -73,7 +73,7 @@ class DownloadQueue( if (download.status == Download.State.DOWNLOADING || download.status == Download.State.QUEUE) { download.status = Download.State.NOT_DOWNLOADED } - downloadListeners.forEach { it.updateDownload(download) } + callListeners(download) } queue.clear() store.clear() @@ -102,7 +102,10 @@ class DownloadQueue( } private fun callListeners(download: Download) { - downloadListeners.forEach { it.updateDownload(download) } + val iterator = downloadListeners.iterator() + while (iterator.hasNext()) { + iterator.next().updateDownload(download) + } } // private fun setPagesSubject(pages: List?, subject: PublishSubject?) {