diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index 662d60906..15e149ac8 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -70,7 +70,7 @@ class DownloadManager( */ fun pauseDownloads() { downloader.pause() - DownloadService.stop(context) + downloader.stop() } /** @@ -78,7 +78,7 @@ class DownloadManager( */ fun clearQueue() { downloader.clearQueue() - DownloadService.stop(context) + downloader.stop() } /** @@ -118,8 +118,8 @@ class DownloadManager( val wasRunning = downloader.isRunning if (downloads.isEmpty()) { - DownloadService.stop(context) - queue.clear() + downloader.clearQueue() + downloader.stop() return } @@ -278,7 +278,6 @@ class DownloadManager( if (wasRunning) { if (queue.isEmpty()) { - DownloadService.stop(context) downloader.stop() } else if (queue.isNotEmpty()) { downloader.start() diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index 7eb75119d..80e8c7c8b 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -173,6 +173,11 @@ class Downloader( } isPaused = false + + // Prevent recursion when DownloadService.onDestroy() calls downloader.stop() + if (DownloadService.isRunning.value) { + DownloadService.stop(context) + } } /** @@ -223,9 +228,9 @@ class Downloader( completeDownload(it) }, { error -> - DownloadService.stop(context) logcat(LogPriority.ERROR, error) notifier.onError(error.message) + stop() }, ) } @@ -646,7 +651,7 @@ class Downloader( queue.remove(download) } if (areAllDownloadsFinished()) { - DownloadService.stop(context) + stop() } }