Use SQLDelight for all MangaCategory related queries (#7441)

(cherry picked from commit 9e3b454b1b79a7725b3d3be4c85c1655ad80e18d)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt
This commit is contained in:
Andreas 2022-07-03 01:05:38 +02:00 committed by Jobobby04
parent 9093663f2f
commit 3cf4c3128f

View File

@ -5,7 +5,7 @@ import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.data.DatabaseHandler
import eu.kanade.data.exh.savedSearchMapper
import eu.kanade.domain.category.interactor.GetCategories
import eu.kanade.domain.category.model.toDbCategory
import eu.kanade.domain.category.interactor.SetMangaCategories
import eu.kanade.domain.chapter.interactor.GetChapterByMangaId
import eu.kanade.domain.chapter.interactor.SyncChaptersWithTrackServiceTwoWay
import eu.kanade.domain.manga.interactor.GetDuplicateLibraryManga
@ -15,7 +15,6 @@ 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.Manga
import eu.kanade.tachiyomi.data.database.models.MangaCategory
import eu.kanade.tachiyomi.data.database.models.toDomainManga
import eu.kanade.tachiyomi.data.database.models.toMangaInfo
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@ -95,6 +94,7 @@ open class BrowseSourcePresenter(
private val getDuplicateLibraryManga: GetDuplicateLibraryManga = Injekt.get(),
private val getCategories: GetCategories = Injekt.get(),
private val getChapterByMangaId: GetChapterByMangaId = Injekt.get(),
private val setMangaCategories: SetMangaCategories = Injekt.get(),
private val insertTrack: InsertTrack = Injekt.get(),
private val syncChaptersWithTrackServiceTwoWay: SyncChaptersWithTrackServiceTwoWay = Injekt.get(),
) : BasePresenter<BrowseSourceController>() {
@ -476,8 +476,12 @@ open class BrowseSourcePresenter(
* @param manga the manga to move.
*/
private fun moveMangaToCategories(manga: Manga, categories: List<DomainCategory>) {
val mc = categories.filter { it.id != 0L }.map { MangaCategory.create(manga, it.toDbCategory()) }
db.setMangaCategories(mc, listOf(manga))
presenterScope.launchIO {
setMangaCategories.await(
mangaId = manga.id!!,
categoryIds = categories.filter { it.id != 0L }.map { it.id },
)
}
}
/**