refactor: Migrated getMangas to SQLDelight

This commit is contained in:
Ahmad Ansori Palembani 2024-06-19 15:14:14 +07:00
parent f6080cd5eb
commit 395f10c8a9
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
3 changed files with 8 additions and 13 deletions

View file

@ -16,15 +16,6 @@ import eu.kanade.tachiyomi.data.database.tables.MangaTable
interface MangaQueries : DbProvider {
fun getMangas() = db.get()
.listOfObjects(Manga::class.java)
.withQuery(
Query.builder()
.table(MangaTable.TABLE)
.build(),
)
.prepare()
fun getDuplicateLibraryManga(manga: Manga) = db.get()
.`object`(Manga::class.java)
.withQuery(

View file

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.data.download
import android.content.Context
import com.hippo.unifile.UniFile
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.source.SourceManager
@ -12,9 +11,11 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.runBlocking
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
import yokai.domain.manga.interactor.GetManga
import yokai.domain.storage.StorageManager
import java.util.concurrent.*
@ -131,8 +132,8 @@ class DownloadCache(
onlineSources.find { provider.getSourceDirName(it).equals(entry.key, ignoreCase = true) }?.id
}
val db: DatabaseHelper by injectLazy()
val mangas = db.getMangas().executeAsBlocking().groupBy { it.source }
val getManga: GetManga by injectLazy()
val mangas = runBlocking(Dispatchers.IO) { getManga.awaitAll().groupBy { it.source } }
sourceDirs.forEach { sourceValue ->
val sourceMangaRaw = mangas[sourceValue.key]?.toMutableSet() ?: return@forEach

View file

@ -79,6 +79,7 @@ import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
import yokai.domain.base.BasePreferences.ExtensionInstaller
import yokai.domain.extension.interactor.TrustExtension
import yokai.domain.manga.interactor.GetManga
import java.io.File
class SettingsAdvancedController : SettingsLegacyController() {
@ -88,6 +89,8 @@ class SettingsAdvancedController : SettingsLegacyController() {
private val db: DatabaseHelper by injectLazy()
private val getManga: GetManga by injectLazy()
private val downloadManager: DownloadManager by injectLazy()
private val trustExtension: TrustExtension by injectLazy()
@ -404,7 +407,7 @@ class SettingsAdvancedController : SettingsLegacyController() {
if (job?.isActive == true) return
activity?.toast(R.string.starting_cleanup)
job = GlobalScope.launch(Dispatchers.IO, CoroutineStart.DEFAULT) {
val mangaList = db.getMangas().executeAsBlocking()
val mangaList = getManga.awaitAll()
val sourceManager: SourceManager = Injekt.get()
val downloadProvider = DownloadProvider(activity!!)
var foldersCleared = 0