From 2cce55953f3ddd228a4028297aff281aa8f913f0 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sat, 1 Jun 2024 20:42:39 +0800 Subject: [PATCH] Fix quick search and download label reordering This is a regression introduced by 6277d7d. --- .../com/hippo/ehviewer/ui/screen/DownloadsScreen.kt | 3 ++- .../com/hippo/ehviewer/ui/screen/GalleryListScreen.kt | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt index 12c924f56..13201f833 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt @@ -333,7 +333,8 @@ fun DownloadsScreen(navigator: DestinationsNavigator) = composing(navigator) { ) } - itemsIndexed(groupList, key = { _, (id) -> id }) { index, (id, label) -> + itemsIndexed(groupList, key = { _, (id) -> id }) { itemIndex, (id, label) -> + val index by rememberUpdatedState(itemIndex) val item by rememberUpdatedState(label) // Not using rememberSwipeToDismissBoxState to prevent LazyColumn from reusing it val dismissState = remember { SwipeToDismissBoxState(SwipeToDismissBoxValue.Settled, density, positionalThreshold = positionalThreshold) } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt index 2d779f70a..d255e6b5a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt @@ -385,7 +385,8 @@ fun GalleryListScreen(lub: ListUrlBuilder, navigator: DestinationsNavigator) = c stickyHeader { HorizontalDivider() } - itemsIndexed(quickSearchList, key = { _, item -> item.id!! }) { index, item -> + itemsIndexed(quickSearchList, key = { _, item -> item.id!! }) { itemIndex, item -> + val index by rememberUpdatedState(itemIndex) ReorderableItem(reorderableLazyListState, key = item.id!!) { isDragging -> // Not using rememberSwipeToDismissBoxState to prevent LazyColumn from reusing it val dismissState = remember { SwipeToDismissBoxState(SwipeToDismissBoxValue.Settled, density, positionalThreshold = positionalThreshold) } @@ -399,11 +400,10 @@ fun GalleryListScreen(lub: ListUrlBuilder, navigator: DestinationsNavigator) = c }.onSuccess { EhDB.deleteQuickSearch(item) with(quickSearchList) { - val removeIndex = indexOf(item) - subList(removeIndex + 1, size).forEach { + subList(index + 1, size).forEach { it.position-- } - removeAt(removeIndex) + removeAt(index) } }.onFailure { dismissState.reset()