From a834ff3a4428497d458399a1ed04b0424f21be64 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Tue, 25 Oct 2022 19:40:45 +0600 Subject: [PATCH] Show LibraryScreen toolbar early to match other main screens (#8285) --- .../presentation/library/LibraryScreen.kt | 147 +++++++++--------- 1 file changed, 73 insertions(+), 74 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt b/app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt index afd615499..c82ae93cd 100644 --- a/app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt @@ -1,6 +1,5 @@ package eu.kanade.presentation.library -import androidx.compose.animation.Crossfade import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.HelpOutline @@ -38,79 +37,79 @@ fun LibraryScreen( onClickFilter: () -> Unit, onClickRefresh: (Category?) -> Boolean, ) { - Crossfade(targetState = presenter.isLoading) { state -> - when (state) { - true -> LoadingScreen() - false -> Scaffold( - topBar = { scrollBehavior -> - val title by presenter.getToolbarTitle() - val tabVisible = presenter.tabVisibility && presenter.categories.size > 1 - LibraryToolbar( - state = presenter, - title = title, - incognitoMode = !tabVisible && presenter.isIncognitoMode, - downloadedOnlyMode = !tabVisible && presenter.isDownloadOnly, - onClickUnselectAll = onClickUnselectAll, - onClickSelectAll = onClickSelectAll, - onClickInvertSelection = onClickInvertSelection, - onClickFilter = onClickFilter, - onClickRefresh = { onClickRefresh(null) }, - scrollBehavior = scrollBehavior.takeIf { !tabVisible }, // For scroll overlay when no tab - ) - }, - bottomBar = { - LibraryBottomActionMenu( - visible = presenter.selectionMode, - onChangeCategoryClicked = onChangeCategoryClicked, - onMarkAsReadClicked = onMarkAsReadClicked, - onMarkAsUnreadClicked = onMarkAsUnreadClicked, - onDownloadClicked = onDownloadClicked.takeIf { presenter.selection.none { it.manga.isLocal() } }, - onDeleteClicked = onDeleteClicked, - ) - }, - ) { paddingValues -> - val contentPadding = TachiyomiBottomNavigationView.withBottomNavPadding(paddingValues) - if (presenter.searchQuery.isNullOrEmpty() && presenter.isLibraryEmpty) { - val handler = LocalUriHandler.current - EmptyScreen( - textResource = R.string.information_empty_library, - modifier = Modifier.padding(contentPadding), - actions = listOf( - EmptyScreenAction( - stringResId = R.string.getting_started_guide, - icon = Icons.Default.HelpOutline, - onClick = { handler.openUri("https://tachiyomi.org/help/guides/getting-started") }, - ), - ), - ) - return@Scaffold - } - - LibraryContent( - state = presenter, - contentPadding = contentPadding, - currentPage = { presenter.activeCategory }, - isLibraryEmpty = presenter.isLibraryEmpty, - showPageTabs = presenter.tabVisibility, - showMangaCount = presenter.mangaCountVisibility, - onChangeCurrentPage = { presenter.activeCategory = it }, - onMangaClicked = onMangaClicked, - onToggleSelection = { presenter.toggleSelection(it) }, - onToggleRangeSelection = { presenter.toggleRangeSelection(it) }, - onRefresh = onClickRefresh, - onGlobalSearchClicked = onGlobalSearchClicked, - getNumberOfMangaForCategory = { presenter.getMangaCountForCategory(it) }, - getDisplayModeForPage = { presenter.categories[it].display }, - getColumnsForOrientation = { presenter.getColumnsPreferenceForCurrentOrientation(it) }, - getLibraryForPage = { presenter.getMangaForCategory(page = it) }, - showDownloadBadges = presenter.showDownloadBadges, - showUnreadBadges = presenter.showUnreadBadges, - showLocalBadges = presenter.showLocalBadges, - showLanguageBadges = presenter.showLanguageBadges, - isIncognitoMode = presenter.isIncognitoMode, - isDownloadOnly = presenter.isDownloadOnly, - ) - } + Scaffold( + topBar = { scrollBehavior -> + val title by presenter.getToolbarTitle() + val tabVisible = presenter.tabVisibility && presenter.categories.size > 1 + LibraryToolbar( + state = presenter, + title = title, + incognitoMode = !tabVisible && presenter.isIncognitoMode, + downloadedOnlyMode = !tabVisible && presenter.isDownloadOnly, + onClickUnselectAll = onClickUnselectAll, + onClickSelectAll = onClickSelectAll, + onClickInvertSelection = onClickInvertSelection, + onClickFilter = onClickFilter, + onClickRefresh = { onClickRefresh(null) }, + scrollBehavior = scrollBehavior.takeIf { !tabVisible }, // For scroll overlay when no tab + ) + }, + bottomBar = { + LibraryBottomActionMenu( + visible = presenter.selectionMode, + onChangeCategoryClicked = onChangeCategoryClicked, + onMarkAsReadClicked = onMarkAsReadClicked, + onMarkAsUnreadClicked = onMarkAsUnreadClicked, + onDownloadClicked = onDownloadClicked.takeIf { presenter.selection.none { it.manga.isLocal() } }, + onDeleteClicked = onDeleteClicked, + ) + }, + ) { paddingValues -> + if (presenter.isLoading) { + LoadingScreen() + return@Scaffold } + + val contentPadding = TachiyomiBottomNavigationView.withBottomNavPadding(paddingValues) + if (presenter.searchQuery.isNullOrEmpty() && presenter.isLibraryEmpty) { + val handler = LocalUriHandler.current + EmptyScreen( + textResource = R.string.information_empty_library, + modifier = Modifier.padding(contentPadding), + actions = listOf( + EmptyScreenAction( + stringResId = R.string.getting_started_guide, + icon = Icons.Default.HelpOutline, + onClick = { handler.openUri("https://tachiyomi.org/help/guides/getting-started") }, + ), + ), + ) + return@Scaffold + } + + LibraryContent( + state = presenter, + contentPadding = contentPadding, + currentPage = { presenter.activeCategory }, + isLibraryEmpty = presenter.isLibraryEmpty, + showPageTabs = presenter.tabVisibility, + showMangaCount = presenter.mangaCountVisibility, + onChangeCurrentPage = { presenter.activeCategory = it }, + onMangaClicked = onMangaClicked, + onToggleSelection = { presenter.toggleSelection(it) }, + onToggleRangeSelection = { presenter.toggleRangeSelection(it) }, + onRefresh = onClickRefresh, + onGlobalSearchClicked = onGlobalSearchClicked, + getNumberOfMangaForCategory = { presenter.getMangaCountForCategory(it) }, + getDisplayModeForPage = { presenter.categories[it].display }, + getColumnsForOrientation = { presenter.getColumnsPreferenceForCurrentOrientation(it) }, + getLibraryForPage = { presenter.getMangaForCategory(page = it) }, + showDownloadBadges = presenter.showDownloadBadges, + showUnreadBadges = presenter.showUnreadBadges, + showLocalBadges = presenter.showLocalBadges, + showLanguageBadges = presenter.showLanguageBadges, + isIncognitoMode = presenter.isIncognitoMode, + isDownloadOnly = presenter.isDownloadOnly, + ) } }