Loading packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/DragAndDropState.kt +16 −1 Original line number Original line Diff line number Diff line Loading @@ -122,7 +122,9 @@ fun Modifier.dragAndDropTileList( remember(dragAndDropState) { remember(dragAndDropState) { object : DragAndDropTarget { object : DragAndDropTarget { override fun onEnded(event: DragAndDropEvent) { override fun onEnded(event: DragAndDropEvent) { dragAndDropState.onDrop() // Drop the tile if the drag ended with a cell still marked as dragged. This can // happen if no other drag listeners consumed the drop event. onDropInternal() } } override fun onExited(event: DragAndDropEvent) { override fun onExited(event: DragAndDropEvent) { Loading @@ -148,6 +150,10 @@ fun Modifier.dragAndDropTileList( } } override fun onDrop(event: DragAndDropEvent): Boolean { override fun onDrop(event: DragAndDropEvent): Boolean { return onDropInternal() } private fun onDropInternal(): Boolean { return dragAndDropState.draggedCell?.let { return dragAndDropState.draggedCell?.let { onDrop(it.tile.tileSpec) onDrop(it.tile.tileSpec) dragAndDropState.onDrop() dragAndDropState.onDrop() Loading Loading @@ -190,6 +196,8 @@ fun Modifier.dragAndDropTileSource( detectDragGesturesAfterLongPress( detectDragGesturesAfterLongPress( onDrag = { _, _ -> }, onDrag = { _, _ -> }, onDragStart = { onDragStart = { check(!dragState.dragInProgress) dragState.onStarted(sizedTile, dragType) dragState.onStarted(sizedTile, dragType) onDragStart() onDragStart() Loading @@ -206,6 +214,13 @@ fun Modifier.dragAndDropTileSource( ) ) ) ) }, }, onDragEnd = { check(dragState.dragInProgress) // onDragEnd is only called if the drag is ended before a drag and drop session // is started. In this case, we clear the drag state. dragState.onDrop() }, ) ) } } ) ) Loading Loading
packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/DragAndDropState.kt +16 −1 Original line number Original line Diff line number Diff line Loading @@ -122,7 +122,9 @@ fun Modifier.dragAndDropTileList( remember(dragAndDropState) { remember(dragAndDropState) { object : DragAndDropTarget { object : DragAndDropTarget { override fun onEnded(event: DragAndDropEvent) { override fun onEnded(event: DragAndDropEvent) { dragAndDropState.onDrop() // Drop the tile if the drag ended with a cell still marked as dragged. This can // happen if no other drag listeners consumed the drop event. onDropInternal() } } override fun onExited(event: DragAndDropEvent) { override fun onExited(event: DragAndDropEvent) { Loading @@ -148,6 +150,10 @@ fun Modifier.dragAndDropTileList( } } override fun onDrop(event: DragAndDropEvent): Boolean { override fun onDrop(event: DragAndDropEvent): Boolean { return onDropInternal() } private fun onDropInternal(): Boolean { return dragAndDropState.draggedCell?.let { return dragAndDropState.draggedCell?.let { onDrop(it.tile.tileSpec) onDrop(it.tile.tileSpec) dragAndDropState.onDrop() dragAndDropState.onDrop() Loading Loading @@ -190,6 +196,8 @@ fun Modifier.dragAndDropTileSource( detectDragGesturesAfterLongPress( detectDragGesturesAfterLongPress( onDrag = { _, _ -> }, onDrag = { _, _ -> }, onDragStart = { onDragStart = { check(!dragState.dragInProgress) dragState.onStarted(sizedTile, dragType) dragState.onStarted(sizedTile, dragType) onDragStart() onDragStart() Loading @@ -206,6 +214,13 @@ fun Modifier.dragAndDropTileSource( ) ) ) ) }, }, onDragEnd = { check(dragState.dragInProgress) // onDragEnd is only called if the drag is ended before a drag and drop session // is started. In this case, we clear the drag state. dragState.onDrop() }, ) ) } } ) ) Loading