summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ryan Lin <ryanlwlin@google.com> 2022-08-02 12:23:58 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-08-02 12:23:58 +0000
commitc2d5e6b2b4b698f4c3166548cf11f0ca102f227b (patch)
tree6dec55d7c3aab5694e867be562d287e743995de0
parent83c72c89b7fd07fdd2f7b5aed62ce79cd3e92e3c (diff)
parent9686160be0521e7f445f7fb09aef99c6e48d44f7 (diff)
Merge "Fix PerfUnitTest Regression"
-rw-r--r--core/java/android/view/ViewRootImpl.java11
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java7
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);