* Merge Latest and Browse into one * Add back Latest button * Change context to IO instead of launching a job * Use loading screen when loading initial page (cherry picked from commit cc6aef693e1a15f695ffa7eebd968004a6557010) # Conflicts: # app/src/main/java/eu/kanade/data/source/SourceRepositoryImpl.kt # app/src/main/java/eu/kanade/presentation/browse/BrowseLatestScreen.kt # app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt # app/src/main/java/eu/kanade/presentation/browse/SourceSearchScreen.kt # app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt # app/src/main/java/eu/kanade/presentation/browse/components/BrowseLatestToolbar.kt # app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceComfortableGrid.kt # app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowsePagingSource.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/latest/LatestUpdatesController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/latest/LatestUpdatesPresenter.kt
45 lines
1.5 KiB
Kotlin
45 lines
1.5 KiB
Kotlin
package exh.md.similar
|
|
|
|
import android.os.Bundle
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.State
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.remember
|
|
import eu.kanade.domain.manga.interactor.GetManga
|
|
import eu.kanade.domain.manga.model.Manga
|
|
import eu.kanade.domain.source.model.SourcePagingSourceType
|
|
import eu.kanade.tachiyomi.source.model.FilterList
|
|
import eu.kanade.tachiyomi.source.online.all.MangaDex
|
|
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter
|
|
import exh.metadata.metadata.base.RaisedSearchMetadata
|
|
import exh.source.getMainSource
|
|
import kotlinx.coroutines.runBlocking
|
|
import uy.kohesive.injekt.Injekt
|
|
import uy.kohesive.injekt.api.get
|
|
|
|
/**
|
|
* Presenter of [MangaDexSimilarController]. Inherit BrowseCataloguePresenter.
|
|
*/
|
|
class MangaDexSimilarPresenter(
|
|
val mangaId: Long,
|
|
sourceId: Long,
|
|
private val getManga: GetManga = Injekt.get(),
|
|
) : BrowseSourcePresenter(sourceId) {
|
|
|
|
var manga: Manga? = null
|
|
|
|
override fun onCreate(savedState: Bundle?) {
|
|
super.onCreate(savedState)
|
|
this.manga = runBlocking { getManga.await(mangaId) }
|
|
}
|
|
|
|
override fun createSourcePagingSource(query: String, filters: FilterList): SourcePagingSourceType {
|
|
return MangaDexSimilarPagingSource(manga!!, source!!.getMainSource() as MangaDex)
|
|
}
|
|
|
|
@Composable
|
|
override fun getRaisedSearchMetadata(manga: Manga, initialMetadata: RaisedSearchMetadata?): State<RaisedSearchMetadata?> {
|
|
return remember { mutableStateOf(initialMetadata) }
|
|
}
|
|
}
|