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