|
@@ -4,6 +4,7 @@ import android.content.Context
|
|
|
import eu.kanade.domain.source.model.SourceData
|
|
|
import eu.kanade.domain.source.repository.SourceDataRepository
|
|
|
import eu.kanade.tachiyomi.R
|
|
|
+import eu.kanade.tachiyomi.data.download.DownloadManager
|
|
|
import eu.kanade.tachiyomi.extension.ExtensionManager
|
|
|
import eu.kanade.tachiyomi.source.model.Page
|
|
|
import eu.kanade.tachiyomi.source.model.SChapter
|
|
@@ -19,12 +20,14 @@ import kotlinx.coroutines.flow.map
|
|
|
import kotlinx.coroutines.launch
|
|
|
import kotlinx.coroutines.runBlocking
|
|
|
import rx.Observable
|
|
|
+import uy.kohesive.injekt.injectLazy
|
|
|
|
|
|
class SourceManager(
|
|
|
private val context: Context,
|
|
|
private val extensionManager: ExtensionManager,
|
|
|
private val sourceRepository: SourceDataRepository,
|
|
|
) {
|
|
|
+ private val downloadManager: DownloadManager by injectLazy()
|
|
|
|
|
|
private val scope = CoroutineScope(Job() + Dispatchers.IO)
|
|
|
|
|
@@ -89,7 +92,12 @@ class SourceManager(
|
|
|
private fun registerStubSource(sourceData: SourceData) {
|
|
|
scope.launch {
|
|
|
val (id, lang, name) = sourceData
|
|
|
+ val dbSourceData = sourceRepository.getSourceData(id)
|
|
|
+ if (dbSourceData == sourceData) return@launch
|
|
|
sourceRepository.upsertSourceData(id, lang, name)
|
|
|
+ if (dbSourceData != null) {
|
|
|
+ downloadManager.renameSource(StubSource(dbSourceData), StubSource(sourceData))
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|