Try to catch onFling null pointer exception

This commit is contained in:
Juha Heinanen
2021-03-11 19:16:09 +02:00
parent 4b027443d0
commit d6dd5f21fe
@@ -18,26 +18,23 @@ open class OnSwipeTouchListener(ctx: Context) : View.OnTouchListener {
gestureDetector = GestureDetector(ctx, GestureListener()) gestureDetector = GestureDetector(ctx, GestureListener())
} }
override fun onTouch(v: View?, e: MotionEvent?): Boolean { override fun onTouch(view: View?, event: MotionEvent?): Boolean {
return if (v != null && e != null) return gestureDetector.onTouchEvent(event)
gestureDetector.onTouchEvent(e)
else
false
} }
private inner class GestureListener : GestureDetector.SimpleOnGestureListener() { private inner class GestureListener : GestureDetector.SimpleOnGestureListener() {
override fun onDown(e: MotionEvent): Boolean { override fun onDown(event: MotionEvent): Boolean {
return true return true
} }
override fun onFling(e1: MotionEvent, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { override fun onFling(e1: MotionEvent?, e2: MotionEvent?, velX: Float, velY: Float): Boolean {
var result = false var result = false
try { try {
val diffY = e2.y - e1.y val diffY = e2!!.y - e1!!.y
val diffX = e2.x - e1.x val diffX = e2.x - e1.x
if (Math.abs(diffX) > Math.abs(diffY)) { if (Math.abs(diffX) > Math.abs(diffY)) {
if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velX) > SWIPE_VELOCITY_THRESHOLD) {
if (diffX > 0) { if (diffX > 0) {
onSwipeRight() onSwipeRight()
} else { } else {
@@ -45,7 +42,7 @@ open class OnSwipeTouchListener(ctx: Context) : View.OnTouchListener {
} }
result = true result = true
} }
} else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) { } else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velY) > SWIPE_VELOCITY_THRESHOLD) {
if (diffY > 0) { if (diffY > 0) {
onSwipeBottom() onSwipeBottom()
result = false result = false
@@ -54,8 +51,9 @@ open class OnSwipeTouchListener(ctx: Context) : View.OnTouchListener {
result = true result = true
} }
} }
} catch (exception: Exception) { } catch (e: Exception) {
exception.printStackTrace() Log.e("Baresip", "onFling exception $e")
e.printStackTrace()
} }
return result return result