package
org.geeksforgeeks.tripletap
import
android.os.Bundle
import
android.os.Handler
import
android.view.MotionEvent
import
android.view.View
import
android.view.ViewConfiguration
import
android.widget.Button
import
android.widget.RelativeLayout
import
android.widget.TextView
import
android.widget.Toast
import
androidx.appcompat.app.AppCompatActivity
class
MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val tvv = findViewById<TextView>(R.id.tv)
tvv.setOnTouchListener(object : View.OnTouchListener {
var handler: Handler = Handler()
var numberOfTaps =
0
var lastTapTimeMs: Long =
0
var touchDownMs: Long =
0
override fun onTouch(v: View?, event: MotionEvent): Boolean {
when (event.action) {
MotionEvent.ACTION_DOWN -> touchDownMs = System.currentTimeMillis()
MotionEvent.ACTION_UP -> {
handler.removeCallbacksAndMessages(
null
)
if
(System.currentTimeMillis() - touchDownMs
> ViewConfiguration.getTapTimeout()) {
numberOfTaps =
0
lastTapTimeMs =
0
}
if
(numberOfTaps >
0
&& System.currentTimeMillis() - lastTapTimeMs
< ViewConfiguration.getDoubleTapTimeout()
) {
numberOfTaps +=
1
}
else
{
numberOfTaps =
1
}
lastTapTimeMs = System.currentTimeMillis()
handler.postDelayed(Runnable {
Toast.makeText(applicationContext,
"$numberOfTaps Clicks"
,
Toast.LENGTH_SHORT)
.show()
}, ViewConfiguration.getDoubleTapTimeout().toLong())
}
}
return
true
}
})
}
}