diff options
| author | 2022-08-02 12:23:58 +0000 | |
|---|---|---|
| committer | 2022-08-02 12:23:58 +0000 | |
| commit | c2d5e6b2b4b698f4c3166548cf11f0ca102f227b (patch) | |
| tree | 6dec55d7c3aab5694e867be562d287e743995de0 | |
| parent | 83c72c89b7fd07fdd2f7b5aed62ce79cd3e92e3c (diff) | |
| parent | 9686160be0521e7f445f7fb09aef99c6e48d44f7 (diff) | |
Merge "Fix PerfUnitTest Regression"
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 11 | ||||
| -rw-r--r-- | services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java | 7 |
2 files changed, 11 insertions, 7 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index ad7fb3f65a22..1bedbfc826c2 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -848,6 +848,8 @@ public final class ViewRootImpl implements ViewParent, private int mLastTransformHint = Integer.MIN_VALUE; + private AccessibilityWindowAttributes mAccessibilityWindowAttributes; + /** * A temporary object used so relayoutWindow can return the latest SyncSeqId * system. The SyncSeqId system was designed to work without synchronous relayout @@ -1412,8 +1414,12 @@ public final class ViewRootImpl implements ViewParent, if (registered) { final AccessibilityWindowAttributes attributes = new AccessibilityWindowAttributes( mWindowAttributes); - mAccessibilityManager.setAccessibilityWindowAttributes(getDisplayId(), - mAttachInfo.mAccessibilityWindowId, attributes); + if (!attributes.equals(mAccessibilityWindowAttributes)) { + mAccessibilityWindowAttributes = attributes; + mAccessibilityManager.setAccessibilityWindowAttributes(getDisplayId(), + mAttachInfo.mAccessibilityWindowId, attributes); + } + } } @@ -10365,6 +10371,7 @@ public final class ViewRootImpl implements ViewParent, != AccessibilityWindowInfo.UNDEFINED_WINDOW_ID; if (registered) { mAttachInfo.mAccessibilityWindowId = AccessibilityWindowInfo.UNDEFINED_WINDOW_ID; + mAccessibilityWindowAttributes = null; mAccessibilityManager.removeAccessibilityInteractionConnection(mWindow); } } diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java index 676bde7ed00f..d33e7b2e4d87 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java @@ -146,11 +146,8 @@ public class AccessibilityWindowManager { if (getWindowTokenForUserAndWindowIdLocked(resolvedUserId, windowId) == null) { return; } - final AccessibilityWindowAttributes currentAttrs = mWindowAttributes.get(windowId); - if (currentAttrs == null || !currentAttrs.equals(attributes)) { - mWindowAttributes.put(windowId, attributes); - shouldComputeWindows = findWindowInfoByIdLocked(windowId) != null; - } + mWindowAttributes.put(windowId, attributes); + shouldComputeWindows = findWindowInfoByIdLocked(windowId) != null; } if (shouldComputeWindows) { mWindowManagerInternal.computeWindowsForAccessibility(displayId); |