|
|
|
|
@ -6,12 +6,12 @@ import androidx.core.view.isVisible |
|
|
|
|
import androidx.recyclerview.widget.ItemTouchHelper |
|
|
|
|
import androidx.recyclerview.widget.RecyclerView |
|
|
|
|
import net.pokeranalytics.android.R |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Swipe to delete callback |
|
|
|
|
*/ |
|
|
|
|
class SwipeToDeleteCallback(var adapter: RowRepresentableAdapter, var onDelete: ((position: Int) -> Unit)? = null) : |
|
|
|
|
class SwipeToDeleteCallback(private var onDelete: ((position: Int) -> Unit)? = null) : |
|
|
|
|
ItemTouchHelper.SimpleCallback(ItemTouchHelper.ACTION_STATE_IDLE, ItemTouchHelper.START or ItemTouchHelper.END) { |
|
|
|
|
|
|
|
|
|
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean { |
|
|
|
|
@ -27,8 +27,8 @@ class SwipeToDeleteCallback(var adapter: RowRepresentableAdapter, var onDelete: |
|
|
|
|
c: Canvas, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, |
|
|
|
|
dX: Float, dY: Float, actionState: Int, isCurrentlyActive: Boolean |
|
|
|
|
) { |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(net.pokeranalytics.android.R.id.foreground) |
|
|
|
|
val backgroundView = viewHolder.itemView.findViewById<View?>(net.pokeranalytics.android.R.id.background) |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(R.id.foreground) |
|
|
|
|
val backgroundView = viewHolder.itemView.findViewById<View?>(R.id.background) |
|
|
|
|
foregroundView?.let { |
|
|
|
|
getDefaultUIUtil().onDraw(c, recyclerView, foregroundView, dX, dY, actionState, isCurrentlyActive) |
|
|
|
|
backgroundView?.findViewById<View?>(R.id.leftIcon)?.isVisible = dX > 0 |
|
|
|
|
@ -36,9 +36,8 @@ class SwipeToDeleteCallback(var adapter: RowRepresentableAdapter, var onDelete: |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun clearView(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) { |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(net.pokeranalytics.android.R.id.foreground) |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(R.id.foreground) |
|
|
|
|
foregroundView?.let { |
|
|
|
|
getDefaultUIUtil().clearView(foregroundView) |
|
|
|
|
} |
|
|
|
|
@ -46,7 +45,7 @@ class SwipeToDeleteCallback(var adapter: RowRepresentableAdapter, var onDelete: |
|
|
|
|
|
|
|
|
|
override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) { |
|
|
|
|
viewHolder?.let { |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(net.pokeranalytics.android.R.id.foreground) |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(R.id.foreground) |
|
|
|
|
foregroundView?.let { |
|
|
|
|
getDefaultUIUtil().onSelected(foregroundView) |
|
|
|
|
} |
|
|
|
|
@ -58,11 +57,29 @@ class SwipeToDeleteCallback(var adapter: RowRepresentableAdapter, var onDelete: |
|
|
|
|
actionState: Int, isCurrentlyActive: Boolean |
|
|
|
|
) { |
|
|
|
|
viewHolder?.let { |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(net.pokeranalytics.android.R.id.foreground) |
|
|
|
|
val foregroundView = viewHolder.itemView.findViewById<View?>(R.id.foreground) |
|
|
|
|
foregroundView?.let { |
|
|
|
|
getDefaultUIUtil().onDrawOver(c, recyclerView, foregroundView, dX, dY, actionState, isCurrentlyActive) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// override fun getMovementFlags( |
|
|
|
|
// recyclerView: RecyclerView, |
|
|
|
|
// viewHolder: RecyclerView.ViewHolder |
|
|
|
|
// ): Int { |
|
|
|
|
// // Set movement flags based on the layout manager |
|
|
|
|
// // Set movement flags based on the layout manager |
|
|
|
|
// return if (viewHolder is HandHistoryAdapter.RowPlayerSetupHolder) { |
|
|
|
|
// val dragFlags = |
|
|
|
|
// ItemTouchHelper.UP or ItemTouchHelper.DOWN or ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT |
|
|
|
|
// val swipeFlags = 0 |
|
|
|
|
// ItemTouchHelper.Callback.makeMovementFlags(dragFlags, swipeFlags) |
|
|
|
|
// } else { |
|
|
|
|
// val dragFlags = ItemTouchHelper.UP or ItemTouchHelper.DOWN |
|
|
|
|
// val swipeFlags = ItemTouchHelper.START or ItemTouchHelper.END |
|
|
|
|
// ItemTouchHelper.Callback.makeMovementFlags(dragFlags, swipeFlags) |
|
|
|
|
// } |
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
} |