diff --git a/app/src/main/java/com/hippo/ehviewer/download/DownloadManager.kt b/app/src/main/java/com/hippo/ehviewer/download/DownloadManager.kt index fea80a795..3cd39d429 100644 --- a/app/src/main/java/com/hippo/ehviewer/download/DownloadManager.kt +++ b/app/src/main/java/com/hippo/ehviewer/download/DownloadManager.kt @@ -48,7 +48,7 @@ object DownloadManager : OnSpiderListener { val allInfoList: LinkedList = LinkedList(EhDB.allDownloadInfo) // All download info map - private val mAllInfoMap: MutableMap + private val mAllInfoMap = allInfoList.associateBy { it.gid } as MutableMap // label and info list map, without default label info list private val map: MutableMap> @@ -60,9 +60,9 @@ object DownloadManager : OnSpiderListener { val defaultInfoList: LinkedList // Store download info wait to start - private val mWaitList: LinkedList - private val mSpeedReminder: SpeedReminder - private val mDownloadInfoListeners: MutableList + private val mWaitList = LinkedList() + private val mSpeedReminder = SpeedReminder() + private val mDownloadInfoListeners = mutableListOf() private val mNotifyTaskPool = ConcurrentPool(5) private var mDownloadListener: DownloadListener? = null private var mCurrentTask: DownloadInfo? = null @@ -82,10 +82,6 @@ object DownloadManager : OnSpiderListener { labelList.forEach { (_, label) -> map[label] ?: LinkedList().also { map[label] = it } } - mAllInfoMap = allInfoList.associateBy { it.gid } as MutableMap - mWaitList = LinkedList() - mSpeedReminder = SpeedReminder() - mDownloadInfoListeners = ArrayList() } private fun getInfoListForLabel(label: String?): LinkedList? { @@ -128,11 +124,11 @@ object DownloadManager : OnSpiderListener { return info?.state ?: DownloadInfo.STATE_INVALID } - fun addDownloadInfoListener(downloadInfoListener: DownloadInfoListener?) { + fun addDownloadInfoListener(downloadInfoListener: DownloadInfoListener) { mDownloadInfoListeners.add(downloadInfoListener) } - fun removeDownloadInfoListener(downloadInfoListener: DownloadInfoListener?) { + fun removeDownloadInfoListener(downloadInfoListener: DownloadInfoListener) { mDownloadInfoListeners.remove(downloadInfoListener) }