From be11a370e6eb6e8db8e4e541b2a171eca5ee366e Mon Sep 17 00:00:00 2001 From: menghanli Date: Tue, 7 Apr 2020 16:11:33 +0800 Subject: [PATCH] Fix gesture navigation popup is displaying inconsistently on the System navigation page. - Need to use new api to get the accessibility service list. Bug: 149665916 Test: local test Change-Id: Ib712769436bf7be5fbea34ba2251bdbe6bcefb95 --- .../SystemNavigationGestureSettings.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java index 728343e9134..bed14a81726 100644 --- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java +++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java @@ -24,7 +24,6 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OV import static com.android.settings.widget.RadioButtonPreferenceWithExtraWidget.EXTRA_WIDGET_VISIBILITY_GONE; import static com.android.settings.widget.RadioButtonPreferenceWithExtraWidget.EXTRA_WIDGET_VISIBILITY_SETTING; -import android.accessibilityservice.AccessibilityServiceInfo; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; @@ -273,18 +272,10 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i } private boolean isAnyServiceSupportAccessibilityButton() { - final AccessibilityManager ams = (AccessibilityManager) getContext().getSystemService( - Context.ACCESSIBILITY_SERVICE); - final List services = ams.getEnabledAccessibilityServiceList( - AccessibilityServiceInfo.FEEDBACK_ALL_MASK); - - for (AccessibilityServiceInfo info : services) { - if ((info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0) { - return true; - } - } - - return false; + final AccessibilityManager ams = getContext().getSystemService(AccessibilityManager.class); + final List targets = ams.getAccessibilityShortcutTargets( + AccessibilityManager.ACCESSIBILITY_BUTTON); + return !targets.isEmpty(); } private boolean isNavBarMagnificationEnabled() {