import
androidx.appcompat.app.AppCompatActivity
import
android.os.Bundle
import
android.view.GestureDetector
import
android.view.MotionEvent
import
android.widget.Toast
import
kotlin.math.abs
class
MainActivity : AppCompatActivity(), GestureDetector.OnGestureListener {
private
lateinit var gestureDetector: GestureDetector
private
val swipeThreshold =
100
private
val swipeVelocityThreshold =
100
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
gestureDetector = GestureDetector(
this
)
}
override fun onTouchEvent(event: MotionEvent): Boolean {
return
if
(gestureDetector.onTouchEvent(event)) {
true
}
else
{
super
.onTouchEvent(event)
}
}
override fun onDown(e: MotionEvent?): Boolean {
return
false
}
override fun onShowPress(e: MotionEvent?) {
return
}
override fun onSingleTapUp(e: MotionEvent?): Boolean {
return
false
}
override fun onScroll(e1: MotionEvent?, e2: MotionEvent?, distanceX: Float, distanceY: Float): Boolean {
return
false
}
override fun onLongPress(e: MotionEvent?) {
return
}
override fun onFling(e1: MotionEvent, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean {
try
{
val diffY = e2.y - e1.y
val diffX = e2.x - e1.x
if
(abs(diffX) > abs(diffY)) {
if
(abs(diffX) > swipeThreshold && abs(velocityX) > swipeVelocityThreshold) {
if
(diffX >
0
) {
Toast.makeText(applicationContext,
"Left to Right swipe gesture"
, Toast.LENGTH_SHORT).show()
}
else
{
Toast.makeText(applicationContext,
"Right to Left swipe gesture"
, Toast.LENGTH_SHORT).show()
}
}
}
}
catch
(exception: Exception) {
exception.printStackTrace()
}
return
true
}
}