diff --git a/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/ViewExtensions.kt b/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/ViewExtensions.kt index 8119e98c1..dbb98d114 100644 --- a/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/ViewExtensions.kt +++ b/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/ViewExtensions.kt @@ -98,15 +98,15 @@ fun View.forwardTouches(parent: View) { parent.onTouchEvent(e) if (lastUpEvent !== null) { parent.onTouchEvent(lastUpEvent) + lastUpEvent?.recycle() lastUpEvent = null } - return true } override fun onSingleTapUp(e: MotionEvent): Boolean { onTouchEvent(e) - lastUpEvent = e + lastUpEvent = MotionEvent.obtain(e) return true } diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt index 41e3c80c5..e354a1994 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt @@ -183,6 +183,8 @@ class ComposeActivity : QkThemedActivity(), ComposeView { message.setOnTouchListener(object : OnTouchListener { private val gestureDetector = GestureDetector(this@ComposeActivity, object : SimpleOnGestureListener() { + private var lastUpEvent: MotionEvent? = null + override fun onDoubleTap(e: MotionEvent): Boolean { val speechRecognizerIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) .putExtra( @@ -195,11 +197,16 @@ class ComposeActivity : QkThemedActivity(), ComposeView { } override fun onSingleTapConfirmed(e: MotionEvent): Boolean { - message.showKeyboard() + if (lastUpEvent !== null) { + message.onTouchEvent(lastUpEvent) + lastUpEvent?.recycle() + lastUpEvent = null + } return true } override fun onSingleTapUp(e: MotionEvent): Boolean { + lastUpEvent = MotionEvent.obtain(e) return true // don't show soft keyboard on this event } })