Start preparing for Manga Info Compose

This commit is contained in:
Jobobby04
2022-06-04 14:08:39 -04:00
parent fef7808bb4
commit 706315625e
21 changed files with 661 additions and 13 deletions
@@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.source.online
import androidx.compose.runtime.Composable
import androidx.recyclerview.widget.RecyclerView
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Chapter
@@ -113,6 +114,9 @@ interface MetadataSource<M : RaisedSearchMetadata, I> : CatalogueSource {
fun getDescriptionAdapter(controller: MangaController): RecyclerView.Adapter<*>?
@Composable
fun DescriptionComposable(controller: MangaController)
fun MangaInfo.id() = db.getManga(key, id).executeAsBlocking()?.id
val SManga.id get() = (this as? Manga)?.id
val SChapter.mangaId get() = (this as? Chapter)?.manga_id
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.source.online.all
import android.content.Context
import android.net.Uri
import androidx.compose.runtime.Composable
import androidx.core.net.toUri
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@@ -44,6 +45,7 @@ import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUA
import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.toGenreString
import exh.metadata.metadata.base.RaisedTag
import exh.ui.login.EhLoginActivity
import exh.ui.metadata.adapters.EHentaiDescription
import exh.ui.metadata.adapters.EHentaiDescriptionAdapter
import exh.util.UriFilter
import exh.util.UriGroup
@@ -1073,6 +1075,11 @@ class EHentai(
return EHentaiDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
EHentaiDescription(controller)
}
companion object {
private const val TR_SUFFIX = "TR"
private const val REVERSE_PARAM = "TEH_REVERSE"
@@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.source.online.all
import android.content.Context
import android.net.Uri
import android.os.Build
import androidx.compose.runtime.Composable
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.toSManga
@@ -16,6 +17,7 @@ import exh.metadata.metadata.HitomiSearchMetadata
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.HitomiDescription
import exh.ui.metadata.adapters.HitomiDescriptionAdapter
import exh.util.urlImportFetchSearchManga
import org.jsoup.nodes.Document
@@ -140,6 +142,11 @@ class Hitomi(delegate: HttpSource, val context: Context) :
return HitomiDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
HitomiDescription(controller)
}
companion object {
const val otherId = 2703068117101782422L
private val DATE_FORMAT by lazy {
@@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.source.online.all
import android.content.Context
import android.content.SharedPreferences
import android.net.Uri
import androidx.compose.runtime.Composable
import eu.kanade.tachiyomi.data.database.models.Track
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.track.TrackManager
@@ -48,6 +49,7 @@ import exh.md.utils.MdLang
import exh.md.utils.MdUtil
import exh.metadata.metadata.MangaDexSearchMetadata
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.MangaDexDescription
import exh.ui.metadata.adapters.MangaDexDescriptionAdapter
import okhttp3.OkHttpClient
import okhttp3.Response
@@ -219,6 +221,11 @@ class MangaDex(delegate: HttpSource, val context: Context) :
return MangaDexDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
MangaDexDescription(controller)
}
override suspend fun parseIntoMetadata(metadata: MangaDexSearchMetadata, input: Triple<MangaDto, List<String>, StatisticsMangaDto>) {
apiMangaParser.parseIntoMetadata(metadata, input.first, input.second, input.third)
}
@@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.source.online.all
import android.content.Context
import android.content.SharedPreferences
import android.net.Uri
import androidx.compose.runtime.Composable
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.toSManga
@@ -15,6 +16,7 @@ import exh.metadata.metadata.NHentaiSearchMetadata
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.NHentaiDescription
import exh.ui.metadata.adapters.NHentaiDescriptionAdapter
import exh.util.trimOrNull
import exh.util.urlImportFetchSearchManga
@@ -172,6 +174,11 @@ class NHentai(delegate: HttpSource, val context: Context) :
return NHentaiDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
NHentaiDescription(controller)
}
companion object {
const val otherId = 7309872737163460316L
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.source.online.all
import android.content.Context
import android.net.Uri
import androidx.compose.runtime.Composable
import androidx.core.net.toUri
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.model.FilterList
@@ -15,6 +16,7 @@ import exh.metadata.metadata.PervEdenSearchMetadata
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.PervEdenDescription
import exh.ui.metadata.adapters.PervEdenDescriptionAdapter
import exh.util.urlImportFetchSearchManga
import org.jsoup.nodes.Document
@@ -136,4 +138,9 @@ class PervEden(delegate: HttpSource, val context: Context) :
override fun getDescriptionAdapter(controller: MangaController): PervEdenDescriptionAdapter {
return PervEdenDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
PervEdenDescription(controller)
}
}
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.source.online.english
import android.content.Context
import android.net.Uri
import androidx.compose.runtime.Composable
import androidx.core.net.toUri
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.model.FilterList
@@ -15,6 +16,7 @@ import eu.kanade.tachiyomi.util.asJsoup
import exh.metadata.metadata.EightMusesSearchMetadata
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.EightMusesDescription
import exh.ui.metadata.adapters.EightMusesDescriptionAdapter
import exh.util.urlImportFetchSearchManga
import org.jsoup.nodes.Document
@@ -100,4 +102,9 @@ class EightMuses(delegate: HttpSource, val context: Context) :
override fun getDescriptionAdapter(controller: MangaController): EightMusesDescriptionAdapter {
return EightMusesDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
EightMusesDescription(controller)
}
}
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.source.online.english
import android.content.Context
import android.net.Uri
import androidx.compose.runtime.Composable
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.toSManga
@@ -14,6 +15,7 @@ import eu.kanade.tachiyomi.util.asJsoup
import exh.metadata.metadata.HBrowseSearchMetadata
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.HBrowseDescription
import exh.ui.metadata.adapters.HBrowseDescriptionAdapter
import exh.util.urlImportFetchSearchManga
import org.jsoup.nodes.Document
@@ -88,4 +90,9 @@ class HBrowse(delegate: HttpSource, val context: Context) :
override fun getDescriptionAdapter(controller: MangaController): HBrowseDescriptionAdapter {
return HBrowseDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
HBrowseDescription(controller)
}
}
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.source.online.english
import android.content.Context
import android.net.Uri
import androidx.compose.runtime.Composable
import androidx.core.net.toUri
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.model.FilterList
@@ -17,6 +18,7 @@ import exh.metadata.metadata.PururinSearchMetadata
import exh.metadata.metadata.base.RaisedSearchMetadata
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.PururinDescription
import exh.ui.metadata.adapters.PururinDescriptionAdapter
import exh.util.dropBlank
import exh.util.trimAll
@@ -118,4 +120,9 @@ class Pururin(delegate: HttpSource, val context: Context) :
override fun getDescriptionAdapter(controller: MangaController): PururinDescriptionAdapter {
return PururinDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
PururinDescription(controller)
}
}
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.source.online.english
import android.content.Context
import android.net.Uri
import androidx.compose.runtime.Composable
import eu.kanade.tachiyomi.network.await
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
@@ -17,6 +18,7 @@ import exh.metadata.metadata.TsuminoSearchMetadata.Companion.TAG_TYPE_DEFAULT
import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.ui.metadata.adapters.TsuminoDescription
import exh.ui.metadata.adapters.TsuminoDescriptionAdapter
import exh.util.dropBlank
import exh.util.trimAll
@@ -145,4 +147,9 @@ class Tsumino(delegate: HttpSource, val context: Context) :
override fun getDescriptionAdapter(controller: MangaController): TsuminoDescriptionAdapter {
return TsuminoDescriptionAdapter(controller)
}
@Composable
override fun DescriptionComposable(controller: MangaController) {
TsuminoDescription(controller)
}
}
@@ -66,6 +66,7 @@ import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.supervisorScope
@@ -146,7 +147,7 @@ class MangaPresenter(
data class EXHRedirect(val manga: Manga, val update: Boolean)
var meta: RaisedSearchMetadata? = null
val meta: MutableStateFlow<RaisedSearchMetadata?> = MutableStateFlow(null)
var mergedManga = emptyMap<Long, Manga>()
private set
@@ -191,7 +192,7 @@ class MangaPresenter(
val meta = if (mainSource != null) {
flatMetadata?.raise(mainSource.metaClass)
} else null
this.meta = meta
this.meta.value = meta
// SY <--
view.onNextMangaInfo(manga, source, meta)
},)
@@ -394,7 +395,7 @@ class MangaPresenter(
.observeOn(AndroidSchedulers.mainThread())
.subscribeLatestCache(
{ view, _ ->
view.onNextMangaInfo(manga, source, meta)
view.onNextMangaInfo(manga, source, meta.value)
},
)
}
@@ -48,7 +48,7 @@ class MangaInfoHeaderAdapter(
private var source: Source = controller.presenter.source
// SY -->
private var meta: RaisedSearchMetadata? = controller.presenter.meta
private var meta: RaisedSearchMetadata? = controller.presenter.meta.value
private var mergedMangaReferences: List<MergedMangaReference> = controller.presenter.mergedMangaReferences
// SY <--