From c21d842c1a188aaaa3a6761a5959b3a9d4fa96d6 Mon Sep 17 00:00:00 2001 From: Ameer Armaly Date: Tue, 22 Mar 2022 11:36:40 -0700 Subject: [PATCH] Service Gesture Detection: don't lock when executing double tap in the framework. Only lock when obtaining the input filter to avoid deadlock when bringing up talkback settings. Fix:223673816 Test: Manual. Bring up talkback settings and insure that there is no ten second wait. Change-Id: Ic26a3a08a7c67b096a7995332e3ed5096fde4847 --- .../server/accessibility/AccessibilityManagerService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 61e3da8aae51e..22c77e92842a2 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -4290,11 +4290,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } private void onDoubleTapInternal(int displayId) { + AccessibilityInputFilter inputFilter = null; synchronized (mLock) { if (mHasInputFilter && mInputFilter != null) { - mInputFilter.onDoubleTap(displayId); + inputFilter = mInputFilter; } } + if (inputFilter != null) { + inputFilter.onDoubleTap(displayId); + } } @Override