2020-07-26 03:04:13 +02:00
|
|
|
package exh.ui.metadata
|
|
|
|
|
|
|
|
|
|
import android.os.Bundle
|
2022-07-03 16:17:41 +02:00
|
|
|
import eu.kanade.domain.manga.interactor.GetFlatMetadataById
|
2022-06-25 17:03:48 +02:00
|
|
|
import eu.kanade.domain.manga.model.Manga
|
2020-07-26 03:04:13 +02:00
|
|
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|
|
|
|
import eu.kanade.tachiyomi.source.Source
|
2020-12-21 00:56:09 +01:00
|
|
|
import eu.kanade.tachiyomi.source.online.MetadataSource
|
2021-01-27 05:47:26 +01:00
|
|
|
import eu.kanade.tachiyomi.util.lang.launchIO
|
2020-07-26 03:04:13 +02:00
|
|
|
import exh.metadata.metadata.base.RaisedSearchMetadata
|
2020-12-21 00:56:09 +01:00
|
|
|
import exh.source.getMainSource
|
|
|
|
|
import exh.ui.base.CoroutinePresenter
|
|
|
|
|
import kotlinx.coroutines.flow.MutableStateFlow
|
2020-07-26 03:04:13 +02:00
|
|
|
import uy.kohesive.injekt.Injekt
|
|
|
|
|
import uy.kohesive.injekt.api.get
|
|
|
|
|
|
|
|
|
|
class MetadataViewPresenter(
|
|
|
|
|
val manga: Manga,
|
|
|
|
|
val source: Source,
|
|
|
|
|
val preferences: PreferencesHelper = Injekt.get(),
|
2022-07-03 16:17:41 +02:00
|
|
|
private val getFlatMetadataById: GetFlatMetadataById = Injekt.get(),
|
2020-12-21 00:56:09 +01:00
|
|
|
) : CoroutinePresenter<MetadataViewController>() {
|
2020-07-26 03:04:13 +02:00
|
|
|
|
2020-12-21 00:56:09 +01:00
|
|
|
val meta = MutableStateFlow<RaisedSearchMetadata?>(null)
|
2020-07-26 03:04:13 +02:00
|
|
|
|
|
|
|
|
override fun onCreate(savedState: Bundle?) {
|
|
|
|
|
super.onCreate(savedState)
|
|
|
|
|
|
2021-01-27 05:47:26 +01:00
|
|
|
launchIO {
|
2022-07-03 16:17:41 +02:00
|
|
|
val flatMetadata = getFlatMetadataById.await(manga.id) ?: return@launchIO
|
2021-07-25 20:16:16 +02:00
|
|
|
val mainSource = source.getMainSource<MetadataSource<*, *>>()
|
|
|
|
|
if (mainSource != null) {
|
2021-01-27 05:47:26 +01:00
|
|
|
meta.value = flatMetadata.raise(mainSource.metaClass)
|
2020-12-21 00:56:09 +01:00
|
|
|
}
|
2021-01-27 05:47:26 +01:00
|
|
|
}
|
2020-12-21 00:56:09 +01:00
|
|
|
|
|
|
|
|
meta
|
2021-01-06 06:54:11 +01:00
|
|
|
.inView { view, metadata ->
|
2020-12-21 00:56:09 +01:00
|
|
|
view.onNextMangaInfo(metadata)
|
|
|
|
|
}
|
2021-01-06 06:54:11 +01:00
|
|
|
.launch()
|
2020-07-26 03:04:13 +02:00
|
|
|
}
|
|
|
|
|
}
|