@@ -2,8 +2,11 @@ package com.orgzly.android.ui.views
22
33import android.content.Context
44import android.util.AttributeSet
5+ import android.view.GestureDetector
56import android.view.KeyEvent
7+ import android.view.MotionEvent
68import androidx.appcompat.widget.AppCompatEditText
9+ import androidx.core.view.GestureDetectorCompat
710import com.orgzly.BuildConfig
811import com.orgzly.android.util.LogUtils
912
@@ -13,11 +16,16 @@ class EditTextWithMarkup : AppCompatEditText {
1316
1417 private val listeners: Listeners by lazy { Listeners (null ) }
1518
19+ private var onFocusOrClickListener: OnClickListener ? = null
20+
21+ fun setOnFocusOrClickListener (l : OnClickListener ? ) {
22+ onFocusOrClickListener = l
23+ }
24+
1625 fun setOnImeBackListener (listener : (() -> Unit )? ) {
1726 listeners.onImeBack = listener
1827 }
1928
20-
2129 constructor (context: Context ) : super (context) {
2230 addTextChangedListener(EditTextWatcher ())
2331 }
@@ -41,6 +49,22 @@ class EditTextWithMarkup : AppCompatEditText {
4149 return super .onKeyPreIme(keyCode, event)
4250 }
4351
52+ private val gestureDetector = GestureDetectorCompat (context, object : GestureDetector .SimpleOnGestureListener () {
53+ override fun onSingleTapUp (e : MotionEvent ? ): Boolean {
54+ return true
55+ }
56+ })
57+
58+ override fun onTouchEvent (event : MotionEvent ): Boolean {
59+ val isSingleTapUp = gestureDetector.onTouchEvent(event)
60+
61+ if (isSingleTapUp) {
62+ onFocusOrClickListener?.onClick(this )
63+ }
64+
65+ return super .onTouchEvent(event)
66+ }
67+
4468 companion object {
4569 val TAG = EditTextWithMarkup ::class .java.name
4670 }
0 commit comments