diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ComposeController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ComposeController.kt new file mode 100644 index 0000000000..8f1848b275 --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ComposeController.kt @@ -0,0 +1,23 @@ +package eu.kanade.tachiyomi.ui.base.controller + +import android.view.LayoutInflater +import android.view.View +import androidx.compose.runtime.Composable +import eu.kanade.tachiyomi.databinding.ComposeControllerBinding +import nucleus.presenter.Presenter + +abstract class ComposeController

> : NucleusController() { + + override fun createBinding(inflater: LayoutInflater): ComposeControllerBinding = + ComposeControllerBinding.inflate(inflater) + + override fun onViewCreated(view: View) { + super.onViewCreated(view) + + binding.root.setContent { + ComposeContent() + } + } + + @Composable abstract fun ComposeContent() +} diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt index c5facc3b44..f6877b1fca 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/history/HistoryController.kt @@ -1,16 +1,14 @@ package eu.kanade.tachiyomi.ui.recent.history -import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater import android.view.MenuItem -import android.view.View import androidx.appcompat.widget.SearchView +import androidx.compose.runtime.Composable import eu.kanade.domain.chapter.model.Chapter import eu.kanade.presentation.history.HistoryScreen import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.databinding.ComposeControllerBinding -import eu.kanade.tachiyomi.ui.base.controller.NucleusController +import eu.kanade.tachiyomi.ui.base.controller.ComposeController import eu.kanade.tachiyomi.ui.base.controller.RootController import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction import eu.kanade.tachiyomi.ui.manga.MangaController @@ -21,46 +19,35 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import reactivecircus.flowbinding.appcompat.queryTextChanges -/** - * Fragment that shows recently read manga. - */ -class HistoryController : - NucleusController(), - RootController { +class HistoryController : ComposeController(), RootController { private var query = "" - override fun getTitle(): String? = resources?.getString(R.string.label_recent_manga) + override fun getTitle() = resources?.getString(R.string.label_recent_manga) - override fun createPresenter(): HistoryPresenter = HistoryPresenter() + override fun createPresenter() = HistoryPresenter() - override fun createBinding(inflater: LayoutInflater): ComposeControllerBinding = - ComposeControllerBinding.inflate(inflater) - - override fun onViewCreated(view: View) { - super.onViewCreated(view) - - binding.root.setContent { - HistoryScreen( - composeView = binding.root, - presenter = presenter, - onClickItem = { history -> - router.pushController(MangaController(history).withFadeTransaction()) - }, - onClickResume = { history -> - presenter.getNextChapterForManga(history.mangaId, history.chapterId) - }, - onClickDelete = { history, all -> - if (all) { - // Reset last read of chapter to 0L - presenter.removeAllFromHistory(history.mangaId) - } else { - // Remove all chapters belonging to manga from library - presenter.removeFromHistory(history) - } - }, - ) - } + @Composable + override fun ComposeContent() { + HistoryScreen( + composeView = binding.root, + presenter = presenter, + onClickItem = { history -> + router.pushController(MangaController(history).withFadeTransaction()) + }, + onClickResume = { history -> + presenter.getNextChapterForManga(history.mangaId, history.chapterId) + }, + onClickDelete = { history, all -> + if (all) { + // Reset last read of chapter to 0L + presenter.removeAllFromHistory(history.mangaId) + } else { + // Remove all chapters belonging to manga from library + presenter.removeFromHistory(history) + } + }, + ) } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {