diff --git a/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt b/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt index d002bc5..d6c0ce6 100644 --- a/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt +++ b/app/src/main/java/com/gamedog/vididin/widget/HomeDragIconView.kt @@ -10,6 +10,7 @@ import android.view.LayoutInflater import android.widget.LinearLayout import androidx.core.view.isVisible import com.ama.core.architecture.util.AndroidUtil +import com.ama.core.architecture.util.setOnClickBatch import com.vididin.real.money.game.R import com.vididin.real.money.game.databinding.LayoutDragIconViewBinding @@ -24,9 +25,11 @@ class HomeDragIconView @JvmOverloads constructor( init { mBinding = LayoutDragIconViewBinding.inflate(LayoutInflater.from(context), this, true) - mBinding.progressContainer.setOnClickListener { + + mBinding.dragLayout.setClickedCallback{ AndroidUtil.showTopToast(R.string.gold_not_ready_hint) } + } diff --git a/app/src/main/res/layout/layout_drag_icon_view.xml b/app/src/main/res/layout/layout_drag_icon_view.xml index 29e0601..c624200 100644 --- a/app/src/main/res/layout/layout_drag_icon_view.xml +++ b/app/src/main/res/layout/layout_drag_icon_view.xml @@ -1,6 +1,7 @@ + android:layout_height="wrap_content" + android:focusable="true"> Unit)? = null + var onDragStart: ((View) -> Unit)? = null var onDragEnd: ((View) -> Unit)? = null @@ -65,22 +70,27 @@ class DragLayout @JvmOverloads constructor( return false } + fun setClickedCallback(onClicked: ()->Unit) { + this.onClicked = onClicked + } + override fun onTouchEvent(event: MotionEvent): Boolean { if (draggedView == null) return false when (event.action and MotionEvent.ACTION_MASK) { MotionEvent.ACTION_DOWN -> { + startTouchX = event.x + startTouchY = event.y return true } MotionEvent.ACTION_MOVE -> { - if (!isDragging) { + if (!isDragging && (Math.abs((event.x - startTouchX)) > 5f || Math.abs((event.y - startTouchY)) > 5f)) { startDrag() } val dx = event.x - lastTouchX val dy = event.y - lastTouchY - updateViewPosition(dx, dy) lastTouchX = event.x lastTouchY = event.y @@ -88,6 +98,10 @@ class DragLayout @JvmOverloads constructor( } MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> { + if (!isDragging) { + onClicked?.invoke() + } + endDrag() return true }