Migrate more track DB calls to SQLDelight
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
package eu.kanade.tachiyomi.ui.browse.migration
|
||||
|
||||
import eu.kanade.domain.track.interactor.GetTracks
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.cache.CoverCache
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.util.hasCustomCover
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
@@ -17,7 +18,7 @@ object MigrationFlags {
|
||||
private const val CUSTOM_COVER = 0b1000
|
||||
|
||||
private val coverCache: CoverCache by injectLazy()
|
||||
private val db: DatabaseHelper = Injekt.get()
|
||||
private val getTracks: GetTracks = Injekt.get()
|
||||
|
||||
val flags get() = arrayOf(CHAPTERS, CATEGORIES, TRACK, CUSTOM_COVER)
|
||||
|
||||
@@ -48,14 +49,12 @@ object MigrationFlags {
|
||||
fun titles(manga: Manga?): Array<Int> {
|
||||
val titles = arrayOf(R.string.chapters, R.string.categories).toMutableList()
|
||||
if (manga != null) {
|
||||
db.inTransaction {
|
||||
if (db.getTracks(manga.id).executeAsBlocking().isNotEmpty()) {
|
||||
titles.add(R.string.track)
|
||||
}
|
||||
if (runBlocking { getTracks.await(manga.id!!) }.isNotEmpty()) {
|
||||
titles.add(R.string.track)
|
||||
}
|
||||
|
||||
if (manga.hasCustomCover(coverCache)) {
|
||||
titles.add(R.string.custom_cover)
|
||||
}
|
||||
if (manga.hasCustomCover(coverCache)) {
|
||||
titles.add(R.string.custom_cover)
|
||||
}
|
||||
}
|
||||
return titles.toTypedArray()
|
||||
|
||||
+4
-1
@@ -5,6 +5,8 @@ import eu.davidea.flexibleadapter.items.IFlexible
|
||||
import eu.kanade.domain.category.interactor.GetCategories
|
||||
import eu.kanade.domain.manga.interactor.GetDuplicateLibraryManga
|
||||
import eu.kanade.domain.manga.model.toDbManga
|
||||
import eu.kanade.domain.track.interactor.InsertTrack
|
||||
import eu.kanade.domain.track.model.toDomainTrack
|
||||
import eu.kanade.tachiyomi.data.cache.CoverCache
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.database.models.Category
|
||||
@@ -67,6 +69,7 @@ open class BrowseSourcePresenter(
|
||||
private val coverCache: CoverCache = Injekt.get(),
|
||||
private val getDuplicateLibraryManga: GetDuplicateLibraryManga = Injekt.get(),
|
||||
private val getCategories: GetCategories = Injekt.get(),
|
||||
private val insertTrack: InsertTrack = Injekt.get(),
|
||||
) : BasePresenter<BrowseSourceController>() {
|
||||
|
||||
/**
|
||||
@@ -286,7 +289,7 @@ open class BrowseSourcePresenter(
|
||||
service.match(manga)?.let { track ->
|
||||
track.manga_id = manga.id!!
|
||||
(service as TrackService).bind(track)
|
||||
db.insertTrack(track).executeAsBlocking()
|
||||
insertTrack.await(track.toDomainTrack()!!)
|
||||
|
||||
syncChaptersWithTrackServiceTwoWay(db, db.getChapters(manga).executeAsBlocking(), track, service as TrackService)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user