Added gesture listeners to NumberButtonView

pull/419/head^2
Jake Powell 7 years ago
parent a733147363
commit 3787bc9cda

@ -21,7 +21,9 @@ package org.isoron.uhabits.activities.habits.list.views
import android.content.* import android.content.*
import android.graphics.* import android.graphics.*
import android.support.v4.view.GestureDetectorCompat
import android.text.* import android.text.*
import android.util.Log
import android.view.* import android.view.*
import android.view.View.* import android.view.View.*
import com.google.auto.factory.* import com.google.auto.factory.*
@ -53,9 +55,7 @@ fun Double.toShortString(): String = when {
class NumberButtonView( class NumberButtonView(
@Provided @ActivityContext context: Context, @Provided @ActivityContext context: Context,
@Provided val preferences: Preferences @Provided val preferences: Preferences
) : View(context), ) : View(context) {
OnClickListener,
OnLongClickListener {
var color = 0 var color = 0
set(value) { set(value) {
@ -83,21 +83,29 @@ class NumberButtonView(
var onEdit: () -> Unit = {} var onEdit: () -> Unit = {}
private var drawer: Drawer = Drawer(context) private var drawer: Drawer = Drawer(context)
private val detector: GestureDetector = GestureDetector(
init { context,
setOnClickListener(this) object: GestureDetector.SimpleOnGestureListener()
setOnLongClickListener(this) {
} override fun onDown(e: MotionEvent?): Boolean = true
override fun onClick(v: View) { override fun onSingleTapConfirmed(e: MotionEvent?): Boolean {
if (preferences.isShortToggleEnabled) onEdit() Log.d("YOUREIT", "onSingleTapConfirmed")
else showMessage(R.string.long_press_to_edit) if (preferences.isShortToggleEnabled) onEdit()
} else showMessage(R.string.long_press_to_edit)
return true
override fun onLongClick(v: View): Boolean { }
onEdit()
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) { override fun onDraw(canvas: Canvas) {
super.onDraw(canvas) super.onDraw(canvas)
@ -110,6 +118,11 @@ class NumberButtonView(
setMeasuredDimension(width, height) setMeasuredDimension(width, height)
} }
override fun onTouchEvent(event: MotionEvent?): Boolean {
detector.onTouchEvent(event)
return true
}
private inner class Drawer(context: Context) { private inner class Drawer(context: Context) {
private val em: Float private val em: Float

Loading…
Cancel
Save