From 2226b9880ee314ed4a5ac95cd19ebb56aa1466aa Mon Sep 17 00:00:00 2001 From: Ameer Armaly Date: Wed, 26 Jul 2023 16:40:56 +0000 Subject: [PATCH] Make sure to send HOVER_EXIT when starting touch exploration if we haven't sent it already. Fix: 290719741 Test: Manual. Repeatedly interrupt and continue touch exploration to trigger sending ACTION_HOVER_ENTER. This would previously cause a crash. Change-Id: I7c35172c82c29289cac565a704bc5d4fbd579773 --- .../android/server/accessibility/gestures/TouchExplorer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java b/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java index 2cf0e3e54326a..33544bc2c4e5e 100644 --- a/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java +++ b/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java @@ -1341,6 +1341,8 @@ public class TouchExplorer extends BaseEventStreamTransformation Slog.e(LOG_TAG, "Unable to find a valid pointer for touch exploration."); return; } + // Send hover exit if we haven't closed a previous touch exploration event stream. + sendHoverExitAndTouchExplorationGestureEndIfNeeded(pointerId); final int pointerIdBits = (1 << pointerId); final int policyFlags = mState.getLastReceivedPolicyFlags(); mSendHoverEnterAndMoveDelayed.setPointerIdBits(pointerIdBits);