From c5171f785c4ff20383bed1d4fcb5063555bee214 Mon Sep 17 00:00:00 2001 From: Arnab Sen Date: Thu, 27 Apr 2023 19:31:07 +0530 Subject: [PATCH] Fix NullPointerException in GestureDetector NPE can be thrown from GestureDetector on GestureDetector#cancel which can crash an app as VelocityTracker object is not checked for null before calling VelocityTracker#recycle. This change fixes the issue by checking for null VelocityTracker before calling VelocityTracker#recycle on GestureDetector#cancel. Test: Precautionary fix to prevent crashes, no test was run Change-Id: I805ac4a19fbd766a9d0f17732b158f1d1e61aae6 --- core/java/android/view/GestureDetector.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/GestureDetector.java b/core/java/android/view/GestureDetector.java index 57ba7e9e816f4..0b21e3d500a13 100644 --- a/core/java/android/view/GestureDetector.java +++ b/core/java/android/view/GestureDetector.java @@ -839,8 +839,10 @@ public class GestureDetector { mHandler.removeMessages(SHOW_PRESS); mHandler.removeMessages(LONG_PRESS); mHandler.removeMessages(TAP); - mVelocityTracker.recycle(); - mVelocityTracker = null; + if (mVelocityTracker != null) { + mVelocityTracker.recycle(); + mVelocityTracker = null; + } mIsDoubleTapping = false; mStillDown = false; mAlwaysInTapRegion = false;