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.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

Loading…
Cancel
Save