diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposeController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposeController.kt index 8b1c7e43c8..7d426f6ad9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposeController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposeController.kt @@ -11,6 +11,7 @@ import androidx.core.view.isVisible import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.databinding.LibraryControllerBinding import eu.kanade.tachiyomi.ui.base.controller.BaseCoroutineController +import eu.kanade.tachiyomi.ui.library.models.LibraryItem import eu.kanade.tachiyomi.ui.main.BottomSheetController import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface import eu.kanade.tachiyomi.ui.main.RootSearchInterface @@ -37,9 +38,11 @@ class LibraryComposeController( } override fun getSearchTitle(): String? { + val searchSuggestion by lazy { preferences.librarySearchSuggestion().get() } + return searchTitle( - if (preferences.showLibrarySearchSuggestions().get() && preferences.librarySearchSuggestion().get().isNotBlank()) { - "\"${preferences.librarySearchSuggestion().get()}\"" + if (preferences.showLibrarySearchSuggestions().get() && searchSuggestion.isNotBlank()) { + "\"$searchSuggestion\"" } else { view?.context?.getString(MR.strings.your_library)?.lowercase(Locale.ROOT) }, @@ -52,8 +55,10 @@ class LibraryComposeController( override fun onViewCreated(view: View) { super.onViewCreated(view) + binding.composeView.isVisible = true binding.swipeRefresh.isGone = true + binding.fastScroller.isGone = true binding.composeView.setContent { YokaiTheme { @@ -66,6 +71,10 @@ class LibraryComposeController( fun ScreenContent() { val state by presenter.state.collectAsState() LibraryContent( + items = listOf( + LibraryItem.Blank(69), + LibraryItem.Blank(420), + ), columns = 3, ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposePresenter.kt index d90494adec..03461eeee5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposePresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/compose/LibraryComposePresenter.kt @@ -1,11 +1,16 @@ package eu.kanade.tachiyomi.ui.library.compose +import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.ui.base.presenter.StateCoroutinePresenter +import eu.kanade.tachiyomi.ui.library.models.LibraryItem + +typealias LibraryMap = Map> class LibraryComposePresenter : - StateCoroutinePresenter(State.Loading) { + StateCoroutinePresenter(State()) { - sealed interface State { - data object Loading : State - } + data class State( + var isLoading: Boolean = true, + var library: LibraryMap = emptyMap() + ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/models/LibraryItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/models/LibraryItem.kt new file mode 100644 index 0000000000..a952dae416 --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/models/LibraryItem.kt @@ -0,0 +1,15 @@ +package eu.kanade.tachiyomi.ui.library.models + +import eu.kanade.tachiyomi.data.database.models.LibraryManga + +sealed interface LibraryItem { + data class Blank(val mangaCount: Int = 0) : LibraryItem + data class Hidden(val title: String, val hiddenItems: List) : LibraryItem + data class Manga( + val libraryManga: LibraryManga, + val isLocal: Boolean = false, + val downloadCount: Long = -1, + val unreadCount: Long = -1, + val language: String = "", + ) : LibraryItem +} diff --git a/app/src/main/java/yokai/presentation/library/LibraryContent.kt b/app/src/main/java/yokai/presentation/library/LibraryContent.kt index 91ecde98a1..66fe35dd26 100644 --- a/app/src/main/java/yokai/presentation/library/LibraryContent.kt +++ b/app/src/main/java/yokai/presentation/library/LibraryContent.kt @@ -3,15 +3,16 @@ package yokai.presentation.library import androidx.compose.foundation.lazy.grid.items import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import eu.kanade.tachiyomi.ui.library.models.LibraryItem import yokai.presentation.AppBarType import yokai.presentation.YokaiScaffold import yokai.presentation.library.components.LazyLibraryGrid @Composable fun LibraryContent( + items: List, columns: Int, ) { - val items = (0..100).toList() YokaiScaffold( onNavigationIconClicked = {}, appBarType = AppBarType.NONE, @@ -23,8 +24,18 @@ fun LibraryContent( items( items = items, contentType = { "library_grid_item" } - ) { - Text("Hello world! ($it)") + ) { item -> + when (item) { + is LibraryItem.Blank -> { + Text("Blank: ${item.mangaCount}") + } + is LibraryItem.Hidden -> { + Text("Hidden: ${item.title} - ${item.hiddenItems.size}") + } + is LibraryItem.Manga -> { + Text("Manga: ${item.libraryManga.manga.title}") + } + } } } } diff --git a/app/src/main/java/yokai/presentation/library/LibraryScreen.kt b/app/src/main/java/yokai/presentation/library/LibraryScreen.kt deleted file mode 100644 index a5c66760bf..0000000000 --- a/app/src/main/java/yokai/presentation/library/LibraryScreen.kt +++ /dev/null @@ -1,13 +0,0 @@ -package yokai.presentation.library - -import androidx.compose.runtime.Composable -import yokai.util.Screen - -class LibraryScreen : Screen() { - @Composable - override fun Content() { - LibraryContent( - columns = 3, // FIXME: Retrieve from preferences - ) - } -}