mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Clean up startDownloadNow function a bit
Fixes #9330, I think. If it was even still an issue.
This commit is contained in:
		@@ -68,7 +68,13 @@ class DownloadManager(
 | 
			
		||||
     * Tells the downloader to begin downloads.
 | 
			
		||||
     */
 | 
			
		||||
    fun startDownloads() {
 | 
			
		||||
        DownloadJob.start(context)
 | 
			
		||||
        if (downloader.isRunning) return
 | 
			
		||||
 | 
			
		||||
        if (DownloadJob.isRunning(context)) {
 | 
			
		||||
            downloader.start()
 | 
			
		||||
        } else {
 | 
			
		||||
            DownloadJob.start(context)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -97,22 +103,16 @@ class DownloadManager(
 | 
			
		||||
        return queueState.value.find { it.chapter.id == chapterId }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun startDownloadNow(chapterId: Long?) {
 | 
			
		||||
        if (chapterId == null) return
 | 
			
		||||
        val download = getQueuedDownloadOrNull(chapterId)
 | 
			
		||||
    fun startDownloadNow(chapterId: Long) {
 | 
			
		||||
        val existingDownload = getQueuedDownloadOrNull(chapterId)
 | 
			
		||||
        // If not in queue try to start a new download
 | 
			
		||||
        val toAdd = download ?: runBlocking { Download.fromChapterId(chapterId) } ?: return
 | 
			
		||||
        val queue = queueState.value.toMutableList()
 | 
			
		||||
        download?.let { queue.remove(it) }
 | 
			
		||||
        queue.add(0, toAdd)
 | 
			
		||||
        reorderQueue(queue)
 | 
			
		||||
        if (!downloader.isRunning) {
 | 
			
		||||
            if (DownloadJob.isRunning(context)) {
 | 
			
		||||
                downloader.start()
 | 
			
		||||
            } else {
 | 
			
		||||
                DownloadJob.start(context)
 | 
			
		||||
            }
 | 
			
		||||
        val toAdd = existingDownload ?: runBlocking { Download.fromChapterId(chapterId) } ?: return
 | 
			
		||||
        queueState.value.toMutableList().apply {
 | 
			
		||||
            existingDownload?.let { remove(it) }
 | 
			
		||||
            add(0, toAdd)
 | 
			
		||||
            reorderQueue(this)
 | 
			
		||||
        }
 | 
			
		||||
        startDownloads()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -146,7 +146,7 @@ class DownloadManager(
 | 
			
		||||
            addAll(0, downloads)
 | 
			
		||||
            reorderQueue(this)
 | 
			
		||||
        }
 | 
			
		||||
        if (!DownloadJob.isRunning(context)) DownloadJob.start(context)
 | 
			
		||||
        if (!DownloadJob.isRunning(context)) startDownloads()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user