Sticker management v2 - Implement drag and drop.

Adds the ability to use drag and drop to rearrange installed sticker packs.
This commit is contained in:
Jeffrey Starke
2025-04-24 10:55:55 -04:00
committed by Cody Henthorne
parent a53479e50d
commit 62ed823e42
6 changed files with 178 additions and 37 deletions

View File

@@ -50,6 +50,7 @@ import org.signal.core.ui.compose.DropdownMenus
import org.signal.core.ui.compose.Previews
import org.signal.core.ui.compose.Scaffolds
import org.signal.core.ui.compose.SignalPreview
import org.signal.core.ui.compose.copied.androidx.compose.DragAndDropEvent
import org.signal.core.ui.compose.copied.androidx.compose.DraggableItem
import org.signal.core.ui.compose.copied.androidx.compose.dragContainer
import org.signal.core.ui.compose.copied.androidx.compose.rememberDragDropState
@@ -121,10 +122,11 @@ fun FoldersScreen(
val screenWidth = LocalConfiguration.current.screenWidthDp.dp
val isRtl = ViewUtil.isRtl(LocalContext.current)
val listState = rememberLazyListState()
val dragDropState =
rememberDragDropState(listState, includeHeader = true, includeFooter = true) { fromIndex, toIndex ->
onPositionUpdated(fromIndex, toIndex)
val dragDropState = rememberDragDropState(listState, includeHeader = true, includeFooter = true) { event ->
if (event is DragAndDropEvent.OnItemMove) {
onPositionUpdated(event.fromIndex, event.toIndex)
}
}
LaunchedEffect(Unit) {
if (!SignalStore.uiHints.hasSeenChatFoldersEducationSheet) {