Tweak Library screen (#7718)

* Allow to refresh when there is white space

fixes #7701

* Don't use key on library screen as it retains scroll position on first item

fixes #7631
This commit is contained in:
Andreas 2022-08-10 21:56:52 +02:00 committed by GitHub
parent ec96a81735
commit 22e83f408b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 13 deletions

View file

@ -42,7 +42,10 @@ fun LazyGridScope.globalSearchItem(
onGlobalSearchClicked: () -> Unit,
) {
if (searchQuery.isNullOrEmpty().not()) {
item(span = { GridItemSpan(maxLineSpan) }) {
item(
span = { GridItemSpan(maxLineSpan) },
contentType = { "library_global_search_item" },
) {
TextButton(onClick = onGlobalSearchClicked) {
Text(
text = stringResource(R.string.action_global_search_query, searchQuery!!),

View file

@ -2,6 +2,7 @@ package eu.kanade.presentation.library.components
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.grid.items
import androidx.compose.material3.MaterialTheme
@ -25,15 +26,14 @@ fun LibraryComfortableGrid(
onGlobalSearchClicked: () -> Unit,
) {
LazyLibraryGrid(
modifier = Modifier.fillMaxSize(),
columns = columns,
) {
globalSearchItem(searchQuery, onGlobalSearchClicked)
items(
items = items,
key = {
it.manga.id!!
},
contentType = { "library_comfortable_grid_item" },
) { libraryItem ->
LibraryComfortableGridItem(
libraryItem,

View file

@ -4,6 +4,7 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.grid.items
@ -33,15 +34,14 @@ fun LibraryCompactGrid(
onGlobalSearchClicked: () -> Unit,
) {
LazyLibraryGrid(
modifier = Modifier.fillMaxSize(),
columns = columns,
) {
globalSearchItem(searchQuery, onGlobalSearchClicked)
items(
items = items,
key = {
it.manga.id!!
},
contentType = { "library_compact_grid_item" },
) { libraryItem ->
LibraryCompactGridItem(
item = libraryItem,

View file

@ -1,6 +1,7 @@
package eu.kanade.presentation.library.components
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.lazy.grid.items
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@ -18,15 +19,14 @@ fun LibraryCoverOnlyGrid(
onGlobalSearchClicked: () -> Unit,
) {
LazyLibraryGrid(
modifier = Modifier.fillMaxSize(),
columns = columns,
) {
globalSearchItem(searchQuery, onGlobalSearchClicked)
items(
items = items,
key = {
it.manga.id!!
},
contentType = { "library_only_cover_grid_item" },
) { libraryItem ->
LibraryCoverOnlyGridItem(
item = libraryItem,

View file

@ -3,6 +3,7 @@ package eu.kanade.presentation.library.components
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.items
@ -37,6 +38,7 @@ fun LibraryList(
onGlobalSearchClicked: () -> Unit,
) {
FastScrollLazyColumn(
modifier = Modifier.fillMaxSize(),
contentPadding = bottomNavPaddingValues,
) {
item {
@ -52,9 +54,7 @@ fun LibraryList(
items(
items = items,
key = {
it.manga.id!!
},
contentType = { "library_list_item" },
) { libraryItem ->
LibraryListItem(
item = libraryItem,