diff --git a/.gitignore b/.gitignore index aa724b7..10cfdbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,7 @@ *.iml .gradle /local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml +/.idea .DS_Store /build /captures diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index a9f8ca7..afe100c 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -1,17 +1,10 @@ - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 1a2f381..5b4c86e 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,8 +4,6 @@ diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt index 3c82810..2e550d2 100644 --- a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt +++ b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/ComposeRecyclerView.kt @@ -14,6 +14,8 @@ import androidx.core.os.bundleOf import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.ItemTouchHelper.DOWN import androidx.recyclerview.widget.ItemTouchHelper.END +import androidx.recyclerview.widget.ItemTouchHelper.LEFT +import androidx.recyclerview.widget.ItemTouchHelper.RIGHT import androidx.recyclerview.widget.ItemTouchHelper.START import androidx.recyclerview.widget.ItemTouchHelper.UP import androidx.recyclerview.widget.LinearLayoutManager @@ -95,7 +97,9 @@ fun ComposeRecyclerView( } val itemTouchHelper = remember { - ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(UP or DOWN or START or END, 0) { + ItemTouchHelper(object : ItemTouchHelper.SimpleCallback( + config.dragDirs ?: (UP or DOWN or START or END), config.swipeDirs ?: (LEFT or RIGHT) + ) { override fun onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, diff --git a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt index 926cb65..7084e0b 100644 --- a/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt +++ b/compose-recyclerview/src/main/java/com/example/compose_recyclerview/utils/ItemTouchHelperConfig.kt @@ -64,4 +64,14 @@ class ItemTouchHelperConfig { * Flag to enable or disable long press drag behavior. */ var isLongPressDragEnabled: Boolean = true + + /** + * Swipe directions for items. If not provided, all directions are enabled by default. + */ + var swipeDirs: Int? = null + + /** + * Drag directions for items. If not provided, left or right directions are enabled by default. + */ + var dragDirs: Int? = null }