From 3787bc9cda08749a5fe92a50ea8b4b4ba9b4100e Mon Sep 17 00:00:00 2001 From: Jake Powell Date: Thu, 17 May 2018 12:41:17 -0400 Subject: [PATCH] Added gesture listeners to NumberButtonView --- .../habits/list/views/NumberButtonView.kt | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/NumberButtonView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/NumberButtonView.kt index 53defd457..411300ab9 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/NumberButtonView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/NumberButtonView.kt @@ -21,7 +21,9 @@ package org.isoron.uhabits.activities.habits.list.views import android.content.* import android.graphics.* +import android.support.v4.view.GestureDetectorCompat import android.text.* +import android.util.Log import android.view.* import android.view.View.* import com.google.auto.factory.* @@ -53,9 +55,7 @@ fun Double.toShortString(): String = when { class NumberButtonView( @Provided @ActivityContext context: Context, @Provided val preferences: Preferences -) : View(context), - OnClickListener, - OnLongClickListener { +) : View(context) { var color = 0 set(value) { @@ -83,21 +83,29 @@ class NumberButtonView( var onEdit: () -> Unit = {} private var drawer: Drawer = Drawer(context) - - init { - setOnClickListener(this) - setOnLongClickListener(this) - } - - override fun onClick(v: View) { - if (preferences.isShortToggleEnabled) onEdit() - else showMessage(R.string.long_press_to_edit) - } - - override fun onLongClick(v: View): Boolean { - onEdit() - return true - } + private val detector: GestureDetector = GestureDetector( + context, + object: GestureDetector.SimpleOnGestureListener() + { + override fun onDown(e: MotionEvent?): Boolean = true + + override fun onSingleTapConfirmed(e: MotionEvent?): Boolean { + Log.d("YOUREIT", "onSingleTapConfirmed") + if (preferences.isShortToggleEnabled) onEdit() + else showMessage(R.string.long_press_to_edit) + return true + } + + override fun onDoubleTap(e: MotionEvent?): Boolean { + Log.d("YOUREIT", "onDoubleTap") + return true + } + + override fun onLongPress(e: MotionEvent?) { + Log.d("YOUREIT", "onLongPress") + onEdit() + } + }) override fun onDraw(canvas: Canvas) { super.onDraw(canvas) @@ -110,6 +118,11 @@ class NumberButtonView( setMeasuredDimension(width, height) } + override fun onTouchEvent(event: MotionEvent?): Boolean { + detector.onTouchEvent(event) + return true + } + private inner class Drawer(context: Context) { private val em: Float