
(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
38 lines
1.3 KiB
Kotlin
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) }
|
|
}
|
|
}
|