TachiyomiSY-Plus/app/src/main/java/exh/md/similar/MangaDexSimilarScreenModel.kt
arkon 6fbf250796 Move more things to domain/data modules
(cherry picked from commit bebd4be43d73617de2cfbc1ff4289e81f535a8e6)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	data/src/main/java/tachiyomi/data/source/EHentaiPagingSource.kt
#	data/src/main/java/tachiyomi/data/source/SourcePagingSource.kt
#	domain/build.gradle.kts
#	domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayModeForCategory.kt
#	domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt
#	domain/src/main/java/tachiyomi/domain/history/interactor/GetHistoryByMangaId.kt
#	domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt
2023-03-15 00:23:28 -04:00

38 lines
1.3 KiB
Kotlin

package exh.md.similar
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.online.all.MangaDex
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.source.getMainSource
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.runBlocking
import tachiyomi.domain.manga.interactor.GetManga
import tachiyomi.domain.manga.model.Manga
import tachiyomi.domain.source.repository.SourcePagingSourceType
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class MangaDexSimilarScreenModel(
val mangaId: Long,
sourceId: Long,
private val getManga: GetManga = Injekt.get(),
) : BrowseSourceScreenModel(sourceId, null) {
val manga: Manga = runBlocking { getManga.await(mangaId) }!!
override fun createSourcePagingSource(query: String, filters: FilterList): SourcePagingSourceType {
return MangaDexSimilarPagingSource(manga, source.getMainSource() as MangaDex)
}
override fun Flow<Manga>.combineMetadata(dbManga: Manga, metadata: RaisedSearchMetadata?): Flow<Pair<Manga, RaisedSearchMetadata?>> {
return map { it to metadata }
}
init {
mutableState.update { it.copy(filterable = false) }
}
}