
- Move Pager to Compose - Move AppBar to Compose - Use Stable interface for state - Use pills for no. of manga in category instead of (x) (cherry picked from commit 2b8d1bcc02994e75e1479b037ef50eb84ae674d7) # Conflicts: # app/src/main/java/eu/kanade/presentation/library/components/LibraryComfortableGrid.kt # app/src/main/java/eu/kanade/presentation/library/components/LibraryCompactGrid.kt # app/src/main/java/eu/kanade/presentation/library/components/LibraryCoverOnlyGrid.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryAdapter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
91 lines
3.6 KiB
Kotlin
91 lines
3.6 KiB
Kotlin
package eu.kanade.presentation.library
|
|
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.getValue
|
|
import eu.kanade.presentation.components.LibraryBottomActionMenu
|
|
import eu.kanade.presentation.components.Scaffold
|
|
import eu.kanade.presentation.library.components.LibraryContent
|
|
import eu.kanade.presentation.library.components.LibraryToolbar
|
|
import eu.kanade.tachiyomi.data.database.models.LibraryManga
|
|
import eu.kanade.tachiyomi.ui.library.LibraryPresenter
|
|
|
|
@Composable
|
|
fun LibraryScreen(
|
|
presenter: LibraryPresenter,
|
|
onMangaClicked: (Long) -> Unit,
|
|
onGlobalSearchClicked: () -> Unit,
|
|
onChangeCategoryClicked: () -> Unit,
|
|
onMarkAsReadClicked: () -> Unit,
|
|
onMarkAsUnreadClicked: () -> Unit,
|
|
onDownloadClicked: () -> Unit,
|
|
onDeleteClicked: () -> Unit,
|
|
onClickUnselectAll: () -> Unit,
|
|
onClickSelectAll: () -> Unit,
|
|
onClickInvertSelection: () -> Unit,
|
|
onClickFilter: () -> Unit,
|
|
onClickRefresh: () -> Unit,
|
|
// SY -->
|
|
onClickCleanTitles: () -> Unit,
|
|
onClickMigrate: () -> Unit,
|
|
onClickAddToMangaDex: () -> Unit,
|
|
onClickSyncExh: () -> Unit,
|
|
onOpenReader: (LibraryManga) -> Unit,
|
|
// SY <--
|
|
) {
|
|
Scaffold(
|
|
topBar = {
|
|
val title by presenter.getToolbarTitle()
|
|
LibraryToolbar(
|
|
state = presenter,
|
|
title = title,
|
|
onClickUnselectAll = onClickUnselectAll,
|
|
onClickSelectAll = onClickSelectAll,
|
|
onClickInvertSelection = onClickInvertSelection,
|
|
onClickFilter = onClickFilter,
|
|
onClickRefresh = onClickRefresh,
|
|
// SY -->
|
|
onClickSyncExh = onClickSyncExh,
|
|
// SY <--
|
|
)
|
|
},
|
|
bottomBar = {
|
|
LibraryBottomActionMenu(
|
|
visible = presenter.selectionMode,
|
|
onChangeCategoryClicked = onChangeCategoryClicked,
|
|
onMarkAsReadClicked = onMarkAsReadClicked,
|
|
onMarkAsUnreadClicked = onMarkAsUnreadClicked,
|
|
onDownloadClicked = onDownloadClicked,
|
|
onDeleteClicked = onDeleteClicked,
|
|
// SY -->
|
|
onClickCleanTitles = onClickCleanTitles.takeIf { presenter.showCleanTitles },
|
|
onClickMigrate = onClickMigrate,
|
|
onClickAddToMangaDex = onClickAddToMangaDex.takeIf { presenter.showAddToMangadex },
|
|
// SY <--
|
|
)
|
|
},
|
|
) { paddingValues ->
|
|
LibraryContent(
|
|
state = presenter,
|
|
contentPadding = paddingValues,
|
|
currentPage = presenter.activeCategory,
|
|
isLibraryEmpty = presenter.loadedManga.isEmpty(),
|
|
showPageTabs = presenter.tabVisibility,
|
|
showMangaCount = presenter.mangaCountVisibility,
|
|
onChangeCurrentPage = { presenter.activeCategory = it },
|
|
onMangaClicked = onMangaClicked,
|
|
onToggleSelection = { presenter.toggleSelection(it) },
|
|
onRefresh = onClickRefresh,
|
|
onGlobalSearchClicked = onGlobalSearchClicked,
|
|
getNumberOfMangaForCategory = { presenter.getMangaCountForCategory(it) },
|
|
getDisplayModeForPage = { presenter.getDisplayMode(index = it) },
|
|
getColumnsForOrientation = { presenter.getColumnsPreferenceForCurrentOrientation(it) },
|
|
getLibraryForPage = { presenter.getMangaForCategory(page = it) },
|
|
isIncognitoMode = presenter.isIncognitoMode,
|
|
isDownloadOnly = presenter.isDownloadOnly,
|
|
// SY -->
|
|
onOpenReader = onOpenReader,
|
|
// SY <--
|
|
)
|
|
}
|
|
}
|