(cherry picked from commit f0eb42e72d1e267049777a303bd97d96517a9a1f) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupRestore.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/Backup.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/models/Backup.kt # app/src/main/java/eu/kanade/tachiyomi/extension/model/Extension.kt # app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt # app/src/main/java/eu/kanade/tachiyomi/ui/base/changehandler/OneWayFadeChangeHandler.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/SelectionHeader.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceItem.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceFilterSheet.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryHolder.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/model/ReaderPage.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt # app/src/main/java/eu/kanade/tachiyomi/util/view/ViewExtensions.kt
81 lines
2.5 KiB
Kotlin
81 lines
2.5 KiB
Kotlin
package exh.ui.metadata
|
|
|
|
import android.os.Bundle
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import androidx.core.os.bundleOf
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import dev.chrisbanes.insetter.applyInsetter
|
|
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
|
import eu.kanade.tachiyomi.databinding.MetadataViewControllerBinding
|
|
import eu.kanade.tachiyomi.source.Source
|
|
import eu.kanade.tachiyomi.source.SourceManager
|
|
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
|
import exh.metadata.metadata.base.RaisedSearchMetadata
|
|
import uy.kohesive.injekt.Injekt
|
|
import uy.kohesive.injekt.api.get
|
|
|
|
class MetadataViewController : NucleusController<MetadataViewControllerBinding, MetadataViewPresenter> {
|
|
constructor(manga: Manga?) : super(
|
|
bundleOf(
|
|
MangaController.MANGA_EXTRA to (manga?.id ?: 0),
|
|
),
|
|
) {
|
|
this.manga = manga
|
|
if (manga != null) {
|
|
source = Injekt.get<SourceManager>().getOrStub(manga.source)
|
|
}
|
|
}
|
|
|
|
constructor(mangaId: Long) : this(
|
|
Injekt.get<DatabaseHelper>().getManga(mangaId).executeAsBlocking(),
|
|
)
|
|
|
|
@Suppress("unused")
|
|
constructor(bundle: Bundle) : this(bundle.getLong(MangaController.MANGA_EXTRA))
|
|
|
|
var adapter: MetadataViewAdapter? = null
|
|
|
|
var manga: Manga? = null
|
|
private set
|
|
var source: Source? = null
|
|
private set
|
|
|
|
override fun getTitle(): String? {
|
|
return manga?.title
|
|
}
|
|
|
|
override fun createPresenter(): MetadataViewPresenter {
|
|
return MetadataViewPresenter(
|
|
manga!!,
|
|
source!!,
|
|
)
|
|
}
|
|
|
|
override fun createBinding(inflater: LayoutInflater) = MetadataViewControllerBinding.inflate(inflater)
|
|
|
|
override fun onViewCreated(view: View) {
|
|
super.onViewCreated(view)
|
|
|
|
binding.recycler.applyInsetter {
|
|
type(navigationBars = true) {
|
|
padding()
|
|
}
|
|
}
|
|
|
|
if (manga == null || source == null) return
|
|
binding.recycler.layoutManager = LinearLayoutManager(view.context, LinearLayoutManager.VERTICAL, false)
|
|
adapter = MetadataViewAdapter()
|
|
binding.recycler.adapter = adapter
|
|
binding.recycler.setHasFixedSize(true)
|
|
}
|
|
|
|
fun onNextMangaInfo(meta: RaisedSearchMetadata?) {
|
|
val adapter = adapter ?: return
|
|
val context = view?.context ?: return
|
|
adapter.items = meta?.getExtraInfoPairs(context).orEmpty()
|
|
}
|
|
}
|