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

Commit 7e5708ae 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

Change-Id: Ifc4da96727c52d112afa79ef32ca5f64a3fc171c
parents a423661c 2c1f2dfb
Loading
Loading
Loading
Loading
+14 −7
Original line number Original line 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);
            final int windowId = findWindowIdLocked(window.token);
            if (windowId < 0) {
            if (windowId < 0) {
                return null;
                return null;
@@ -3140,10 +3140,14 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
                    mAccessibilityFocusedWindowId != INVALID_WINDOW_ID;
                    mAccessibilityFocusedWindowId != INVALID_WINDOW_ID;
            if (windowCount > 0) {
            if (windowCount > 0) {
                for (int i = 0; i < windowCount; i++) {
                for (int i = 0; i < windowCount; i++) {
                    WindowInfo windowInfo = windows.get(i);
                    final WindowInfo windowInfo = windows.get(i);
                    AccessibilityWindowInfo window = (mWindowsForAccessibilityCallback != null)
                    final AccessibilityWindowInfo window;
                            ? mWindowsForAccessibilityCallback.populateReportedWindow(windowInfo)
                    if (mWindowsForAccessibilityCallback != null) {
                            : null;
                        window = mWindowsForAccessibilityCallback
                                .populateReportedWindowLocked(windowInfo);
                    } else {
                        window = null;
                    }
                    if (window != null) {
                    if (window != null) {


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


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