Show LibraryScreen toolbar early to match other main screens (#8285)

(cherry picked from commit a834ff3a4428497d458399a1ed04b0424f21be64)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
This commit is contained in:
AntsyLich 2022-10-25 19:40:45 +06:00 committed by Jobobby04
parent 20ea3d5eac
commit e0c83b018b

View File

@ -1,6 +1,5 @@
package eu.kanade.presentation.library package eu.kanade.presentation.library
import androidx.compose.animation.Crossfade
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.HelpOutline import androidx.compose.material.icons.filled.HelpOutline
@ -45,96 +44,96 @@ fun LibraryScreen(
onOpenReader: (LibraryManga) -> Unit, onOpenReader: (LibraryManga) -> Unit,
// SY <-- // SY <--
) { ) {
Crossfade(targetState = presenter.isLoading) { state -> Scaffold(
when (state) { topBar = { scrollBehavior ->
true -> LoadingScreen() val title by presenter.getToolbarTitle()
false -> Scaffold( val tabVisible = presenter.tabVisibility && presenter.categories.size > 1
topBar = { scrollBehavior -> LibraryToolbar(
val title by presenter.getToolbarTitle() state = presenter,
val tabVisible = presenter.tabVisibility && presenter.categories.size > 1 title = title,
LibraryToolbar( incognitoMode = !tabVisible && presenter.isIncognitoMode,
state = presenter, downloadedOnlyMode = !tabVisible && presenter.isDownloadOnly,
title = title, onClickUnselectAll = onClickUnselectAll,
incognitoMode = !tabVisible && presenter.isIncognitoMode, onClickSelectAll = onClickSelectAll,
downloadedOnlyMode = !tabVisible && presenter.isDownloadOnly, onClickInvertSelection = onClickInvertSelection,
onClickUnselectAll = onClickUnselectAll, onClickFilter = onClickFilter,
onClickSelectAll = onClickSelectAll, onClickRefresh = { onClickRefresh(null) },
onClickInvertSelection = onClickInvertSelection, // SY -->
onClickFilter = onClickFilter, onClickSyncExh = onClickSyncExh,
onClickRefresh = { onClickRefresh(null) }, // SY <--
// SY --> scrollBehavior = scrollBehavior.takeIf { !tabVisible }, // For scroll overlay when no tab
onClickSyncExh = onClickSyncExh, )
// SY <-- },
scrollBehavior = scrollBehavior.takeIf { !tabVisible }, // For scroll overlay when no tab bottomBar = {
) LibraryBottomActionMenu(
}, visible = presenter.selectionMode,
bottomBar = { onChangeCategoryClicked = onChangeCategoryClicked,
LibraryBottomActionMenu( onMarkAsReadClicked = onMarkAsReadClicked,
visible = presenter.selectionMode, onMarkAsUnreadClicked = onMarkAsUnreadClicked,
onChangeCategoryClicked = onChangeCategoryClicked, onDownloadClicked = onDownloadClicked.takeIf { presenter.selection.none { it.manga.isLocal() } },
onMarkAsReadClicked = onMarkAsReadClicked, onDeleteClicked = onDeleteClicked,
onMarkAsUnreadClicked = onMarkAsUnreadClicked, // SY -->
onDownloadClicked = onDownloadClicked.takeIf { presenter.selection.none { it.manga.isLocal() } }, onClickCleanTitles = onClickCleanTitles.takeIf { presenter.showCleanTitles },
onDeleteClicked = onDeleteClicked, onClickMigrate = onClickMigrate,
// SY --> onClickAddToMangaDex = onClickAddToMangaDex.takeIf { presenter.showAddToMangadex },
onClickCleanTitles = onClickCleanTitles.takeIf { presenter.showCleanTitles }, // SY <--
onClickMigrate = onClickMigrate, )
onClickAddToMangaDex = onClickAddToMangaDex.takeIf { presenter.showAddToMangadex }, },
// SY <-- ) { paddingValues ->
) if (presenter.isLoading) {
}, LoadingScreen()
) { paddingValues -> 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) },
// SY -->
getDisplayModeForPage = { presenter.getDisplayMode(index = it) },
// SY <--
getColumnsForOrientation = { presenter.getColumnsPreferenceForCurrentOrientation(it) },
getLibraryForPage = { presenter.getMangaForCategory(page = it) },
showDownloadBadges = presenter.showDownloadBadges,
showUnreadBadges = presenter.showUnreadBadges,
showLocalBadges = presenter.showLocalBadges,
showLanguageBadges = presenter.showLanguageBadges,
// SY -->
showStartReadingButton = presenter.showStartReadingButton,
// SY <--
isIncognitoMode = presenter.isIncognitoMode,
isDownloadOnly = presenter.isDownloadOnly,
// SY -->
onOpenReader = onOpenReader,
getCategoryName = presenter::getCategoryName,
// SY <--
)
}
} }
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) },
// SY -->
getDisplayModeForPage = { presenter.getDisplayMode(index = it) },
// SY <--
getColumnsForOrientation = { presenter.getColumnsPreferenceForCurrentOrientation(it) },
getLibraryForPage = { presenter.getMangaForCategory(page = it) },
showDownloadBadges = presenter.showDownloadBadges,
showUnreadBadges = presenter.showUnreadBadges,
showLocalBadges = presenter.showLocalBadges,
showLanguageBadges = presenter.showLanguageBadges,
// SY -->
showStartReadingButton = presenter.showStartReadingButton,
// SY <--
isIncognitoMode = presenter.isIncognitoMode,
isDownloadOnly = presenter.isDownloadOnly,
// SY -->
onOpenReader = onOpenReader,
getCategoryName = presenter::getCategoryName,
// SY <--
)
} }
} }