From 5f6f979bcef1c0d1b5ec41d2205edb9cb23bb543 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 20 Feb 2025 19:06:51 +0800 Subject: [PATCH] Comment about rememberSwipeToDismissBoxState usage --- .../main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt | 1 + .../kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt | 1 + 2 files changed, 2 insertions(+) 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 d04cd7ea2..94e06748a 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 @@ -339,6 +339,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = val index by rememberUpdatedState(itemIndex) val item by rememberUpdatedState(label) // Not using rememberSwipeToDismissBoxState to prevent LazyColumn from reusing it + // SQLite may reuse ROWIDs from previously deleted rows so they'll have the same key val dismissState = remember { SwipeToDismissBoxState(SwipeToDismissBoxValue.Settled, density) } LaunchedEffect(dismissState) { snapshotFlow { dismissState.currentValue }.collect { 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 adc1ee42b..cde23cb04 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 @@ -364,6 +364,7 @@ fun AnimatedVisibilityScope.GalleryListScreen(lub: ListUrlBuilder, navigator: De animateItemModifier = Modifier.thenIf(animateItems) { animateItem() }, ) { isDragging -> // Not using rememberSwipeToDismissBoxState to prevent LazyColumn from reusing it + // SQLite may reuse ROWIDs from previously deleted rows so they'll have the same key val dismissState = remember { SwipeToDismissBoxState(SwipeToDismissBoxValue.Settled, density) } LaunchedEffect(dismissState) { snapshotFlow { dismissState.currentValue }.collect { value ->