From 35130b08b700591e9a279f53e8380e69ca4eca0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=A4rkl?= Date: Fri, 15 Jan 2021 19:16:54 +0100 Subject: [PATCH] Refine LR Touch on Android --- .../chiaki/touchcontrols/ButtonView.kt | 11 ++++++---- .../src/main/res/layout/fragment_controls.xml | 20 ++++++++++++------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/android/app/src/main/java/com/metallic/chiaki/touchcontrols/ButtonView.kt b/android/app/src/main/java/com/metallic/chiaki/touchcontrols/ButtonView.kt index 078f751..66a9afe 100644 --- a/android/app/src/main/java/com/metallic/chiaki/touchcontrols/ButtonView.kt +++ b/android/app/src/main/java/com/metallic/chiaki/touchcontrols/ButtonView.kt @@ -6,6 +6,7 @@ import android.content.Context import android.graphics.Canvas import android.graphics.drawable.Drawable import android.util.AttributeSet +import android.util.Log import android.view.MotionEvent import android.view.View import android.view.ViewGroup @@ -75,14 +76,16 @@ class ButtonView @JvmOverloads constructor( override fun onTouchEvent(event: MotionEvent): Boolean { - when(event.action) + when(event.actionMasked) { - MotionEvent.ACTION_DOWN -> { - if(bestFittingTouchView(event.x, event.y) != this) + MotionEvent.ACTION_DOWN, MotionEvent.ACTION_POINTER_DOWN -> { + if(bestFittingTouchView(event.getX(event.actionIndex), event.getY(event.actionIndex)) != this) return false buttonPressed = true } - MotionEvent.ACTION_UP -> buttonPressed = false + MotionEvent.ACTION_UP, MotionEvent.ACTION_POINTER_UP -> { + buttonPressed = false + } } return true } diff --git a/android/app/src/main/res/layout/fragment_controls.xml b/android/app/src/main/res/layout/fragment_controls.xml index 244956a..7a6b3af 100644 --- a/android/app/src/main/res/layout/fragment_controls.xml +++ b/android/app/src/main/res/layout/fragment_controls.xml @@ -173,9 +173,12 @@