From 6047c9f36a8e4ebc04f0cca932598c03ffaf37b8 Mon Sep 17 00:00:00 2001 From: Mike Korcha Date: Fri, 10 Nov 2017 11:24:42 -0800 Subject: [PATCH] Improve move vs click accuracy (#1) --- .../listeners/OnMediaButtonTouchListener.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/mikekorcha/mediabuttonoverlay/listeners/OnMediaButtonTouchListener.java b/app/src/main/java/com/mikekorcha/mediabuttonoverlay/listeners/OnMediaButtonTouchListener.java index 319b5bc..90d2205 100644 --- a/app/src/main/java/com/mikekorcha/mediabuttonoverlay/listeners/OnMediaButtonTouchListener.java +++ b/app/src/main/java/com/mikekorcha/mediabuttonoverlay/listeners/OnMediaButtonTouchListener.java @@ -1,5 +1,6 @@ package com.mikekorcha.mediabuttonoverlay.listeners; +import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; @@ -21,6 +22,7 @@ protected OnMediaButtonTouchListener(WindowManager.LayoutParams params) { } public boolean onTouch(View view, MotionEvent motionEvent) { + int[] coords = getCoords(motionEvent); switch(motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: initialX = layoutParams.x; @@ -30,20 +32,18 @@ public boolean onTouch(View view, MotionEvent motionEvent) { return true; case MotionEvent.ACTION_MOVE: - if(Math.abs(motionEvent.getX()) < view.getWidth() || - Math.abs(motionEvent.getY()) < view.getHeight()) { + if(coords[0] < initialX || coords[0] > initialX + view.getWidth() + || coords[1] < initialY || coords[1] > initialY + view.getHeight()) { isMoving = true; - int[] coords = getCoords(motionEvent); onDrag(view, motionEvent, coords[0], coords[1]); } return true; - + case MotionEvent.ACTION_UP: if(isMoving) { isMoving = false; - int[] coords = getCoords(motionEvent); onDrop(view, motionEvent, coords[0], coords[1]); } else {