Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c498308 authored by Phil Weaver's avatar Phil Weaver Committed by android-build-merger
Browse files

Merge "Don't clear a11y focus with lock held" into pi-dev am: 2c1f2dfb

am: 7e5708ae

Change-Id: Ic9c6f840bf499cc1bec31489707cf00b703b429a
parents ab5eaa67 7e5708ae
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -2721,7 +2721,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
            }
        }

        private AccessibilityWindowInfo populateReportedWindow(WindowInfo window) {
        private AccessibilityWindowInfo populateReportedWindowLocked(WindowInfo window) {
            final int windowId = findWindowIdLocked(window.token);
            if (windowId < 0) {
                return null;
@@ -3140,10 +3140,14 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
                    mAccessibilityFocusedWindowId != INVALID_WINDOW_ID;
            if (windowCount > 0) {
                for (int i = 0; i < windowCount; i++) {
                    WindowInfo windowInfo = windows.get(i);
                    AccessibilityWindowInfo window = (mWindowsForAccessibilityCallback != null)
                            ? mWindowsForAccessibilityCallback.populateReportedWindow(windowInfo)
                            : null;
                    final WindowInfo windowInfo = windows.get(i);
                    final AccessibilityWindowInfo window;
                    if (mWindowsForAccessibilityCallback != null) {
                        window = mWindowsForAccessibilityCallback
                                .populateReportedWindowLocked(windowInfo);
                    } else {
                        window = null;
                    }
                    if (window != null) {

                        // Flip layers in list to be consistent with AccessibilityService#getWindows
@@ -3173,7 +3177,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
                // active window once we decided which it is.
                final int accessibilityWindowCount = mWindows.size();
                for (int i = 0; i < accessibilityWindowCount; i++) {
                    AccessibilityWindowInfo window = mWindows.get(i);
                    final AccessibilityWindowInfo window = mWindows.get(i);
                    if (window.getId() == mActiveWindowId) {
                        window.setActive(true);
                    }
@@ -3192,7 +3196,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
            }

            if (shouldClearAccessibilityFocus) {
                clearAccessibilityFocus(mAccessibilityFocusedWindowId);
                mMainHandler.sendMessage(obtainMessage(
                        AccessibilityManagerService::clearAccessibilityFocus,
                        AccessibilityManagerService.this,
                        box(mAccessibilityFocusedWindowId)));
            }
        }