From fd82e35215c7fc93811cee70dcdc1d4c9c8b6c6d Mon Sep 17 00:00:00 2001 From: darthpaul Date: Fri, 25 Nov 2022 08:15:28 +0000 Subject: [PATCH] fix NPE thrown in onFling --- .../camera/activities/MainActivity.kt | 10 +++------- .../camera/helpers/GestureDetectorListener.java | 13 +++++++++++++ 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/camera/helpers/GestureDetectorListener.java diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt index 5ddc51bb..3e28fe0e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt @@ -366,20 +366,16 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera @SuppressLint("ClickableViewAccessibility") private fun initModeSwitcher() { - val gestureDetector = GestureDetectorCompat(this, object : GestureDetector.SimpleOnGestureListener() { + val gestureDetector = GestureDetectorCompat(this, object : GestureDetectorListener() { override fun onDown(e: MotionEvent): Boolean { // we have to return true here so ACTION_UP // (and onFling) can be dispatched return true } - override fun onFling(event1: MotionEvent, event2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { + override fun onFling(event1: MotionEvent?, event2: MotionEvent?, velocityX: Float, velocityY: Float): Boolean { // these can be null even if the docs say they cannot, getting event1.x in itself can cause crashes - try { - if (event1 == null || event2 == null || event1.x == null || event2.x == null) { - return true - } - } catch (e: NullPointerException) { + if (event1 == null || event2 == null) { return true } diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/GestureDetectorListener.java b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/GestureDetectorListener.java new file mode 100644 index 00000000..209a9a20 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/GestureDetectorListener.java @@ -0,0 +1,13 @@ +package com.simplemobiletools.camera.helpers; + +import android.view.GestureDetector; +import android.view.MotionEvent; + +import androidx.annotation.Nullable; + +public class GestureDetectorListener extends GestureDetector.SimpleOnGestureListener { + @Override + public boolean onFling(@Nullable MotionEvent e1, @Nullable MotionEvent e2, float velocityX, float velocityY) { + return super.onFling(e1, e2, velocityX, velocityY); + } +}