Merge "WM: Make AccessibilityController persistent" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ef4d26ab45
@@ -904,7 +904,7 @@ public class AppTransitionController {
|
||||
|
||||
final AccessibilityController accessibilityController =
|
||||
mDisplayContent.mWmService.mAccessibilityController;
|
||||
if (accessibilityController != null) {
|
||||
if (accessibilityController.hasCallbacks()) {
|
||||
accessibilityController.onAppWindowTransition(mDisplayContent.getDisplayId(), transit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1284,7 +1284,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
|
||||
addWindowToken(token.token, token);
|
||||
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
final int prevDisplayId = prevDc != null ? prevDc.getDisplayId() : INVALID_DISPLAY;
|
||||
mWmService.mAccessibilityController.onSomeWindowResizedOrMoved(prevDisplayId,
|
||||
getDisplayId());
|
||||
@@ -3569,7 +3569,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
// focused one starts firing events.
|
||||
// TODO(b/151179149) investigate what info accessibility service needs before input can
|
||||
// dispatch focus to clients.
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mH.sendMessage(PooledLambda.obtainMessage(
|
||||
this::updateAccessibilityOnWindowFocusChanged,
|
||||
mWmService.mAccessibilityController));
|
||||
@@ -5216,7 +5216,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
}
|
||||
if (!mLocationInParentWindow.equals(x, y)) {
|
||||
mLocationInParentWindow.set(x, y);
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onSomeWindowResizedOrMoved(mDisplayId);
|
||||
}
|
||||
notifyLocationInParentDisplayChanged();
|
||||
@@ -5774,7 +5774,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
@Override
|
||||
void onResize() {
|
||||
super.onResize();
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onDisplaySizeChanged(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public class DockedTaskDividerController {
|
||||
void setTouchRegion(Rect touchRegion) {
|
||||
mTouchRegion.set(touchRegion);
|
||||
// We need to report touchable region changes to accessibility.
|
||||
if (mDisplayContent.mWmService.mAccessibilityController != null) {
|
||||
if (mDisplayContent.mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mDisplayContent.mWmService.mAccessibilityController.onSomeWindowResizedOrMoved(
|
||||
mDisplayContent.getDisplayId());
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ public class ShellRoot {
|
||||
mAccessibilityWindow = null;
|
||||
}
|
||||
}
|
||||
if (mDisplayContent.mWmService.mAccessibilityController != null) {
|
||||
if (mDisplayContent.mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mDisplayContent.mWmService.mAccessibilityController.onSomeWindowResizedOrMoved(
|
||||
mDisplayContent.getDisplayId());
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ public class WindowAnimator {
|
||||
final DisplayContent dc = root.getDisplayContent(displayId);
|
||||
|
||||
dc.checkAppWindowsReadyToShow();
|
||||
if (accessibilityController != null) {
|
||||
if (accessibilityController.hasCallbacks()) {
|
||||
accessibilityController.drawMagnifiedRegionBorderIfNeeded(displayId,
|
||||
mTransaction);
|
||||
}
|
||||
|
||||
@@ -636,7 +636,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
/** List of window currently causing non-system overlay windows to be hidden. */
|
||||
private ArrayList<WindowState> mHidingNonSystemOverlayWindows = new ArrayList<>();
|
||||
|
||||
AccessibilityController mAccessibilityController;
|
||||
final AccessibilityController mAccessibilityController;
|
||||
private RecentsAnimationController mRecentsAnimationController;
|
||||
|
||||
Watermark mWatermark;
|
||||
@@ -1387,6 +1387,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
mStartingSurfaceController = new StartingSurfaceController(this);
|
||||
|
||||
mBlurController = new BlurController(mContext, mPowerManager);
|
||||
mAccessibilityController = new AccessibilityController(this);
|
||||
}
|
||||
|
||||
DisplayAreaPolicy.Provider getDisplayAreaPolicyProvider() {
|
||||
@@ -2164,7 +2165,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
mWindowPlacerLocked.performSurfacePlacement();
|
||||
|
||||
// We need to report touchable region changes to accessibility.
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController.onSomeWindowResizedOrMovedWithCallingUid(
|
||||
uid, w.getDisplayContent().getDisplayId());
|
||||
}
|
||||
@@ -2177,7 +2178,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
public void onRectangleOnScreenRequested(IBinder token, Rect rectangle) {
|
||||
synchronized (mGlobalLock) {
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
WindowState window = mWindowMap.get(token);
|
||||
if (window != null) {
|
||||
mAccessibilityController.onRectangleOnScreenRequested(
|
||||
@@ -2267,7 +2268,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
win.mActivityRecord.checkKeyguardFlagsChanged();
|
||||
}
|
||||
if (((attrChanges & LayoutParams.ACCESSIBILITY_TITLE_CHANGED) != 0)
|
||||
&& (mAccessibilityController != null)) {
|
||||
&& (mAccessibilityController.hasCallbacks())) {
|
||||
// No move or resize, but the controller checks for title changes as well
|
||||
mAccessibilityController.onSomeWindowResizedOrMovedWithCallingUid(
|
||||
uid, win.getDisplayContent().getDisplayId());
|
||||
@@ -2594,7 +2595,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
win.mDestroying = true;
|
||||
win.destroySurface(false, stopped);
|
||||
}
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController.onWindowTransition(win, transit);
|
||||
}
|
||||
|
||||
@@ -6423,7 +6424,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
mInputManagerCallback.dump(pw, " ");
|
||||
mTaskSnapshotController.dump(pw, " ");
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController.dump(pw, " ");
|
||||
}
|
||||
|
||||
@@ -7443,7 +7444,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
@Override
|
||||
public void setMagnificationSpec(int displayId, MagnificationSpec spec) {
|
||||
synchronized (mGlobalLock) {
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController.setMagnificationSpec(displayId, spec);
|
||||
} else {
|
||||
throw new IllegalStateException("Magnification callbacks not set!");
|
||||
@@ -7454,7 +7455,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
@Override
|
||||
public void setForceShowMagnifiableBounds(int displayId, boolean show) {
|
||||
synchronized (mGlobalLock) {
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController.setForceShowMagnifiableBounds(displayId, show);
|
||||
} else {
|
||||
throw new IllegalStateException("Magnification callbacks not set!");
|
||||
@@ -7465,7 +7466,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
@Override
|
||||
public void getMagnificationRegion(int displayId, @NonNull Region magnificationRegion) {
|
||||
synchronized (mGlobalLock) {
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController.getMagnificationRegion(displayId, magnificationRegion);
|
||||
} else {
|
||||
throw new IllegalStateException("Magnification callbacks not set!");
|
||||
@@ -7481,7 +7482,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
return null;
|
||||
}
|
||||
MagnificationSpec spec = null;
|
||||
if (mAccessibilityController != null) {
|
||||
if (mAccessibilityController.hasCallbacks()) {
|
||||
spec = mAccessibilityController.getMagnificationSpecForWindow(windowState);
|
||||
}
|
||||
if ((spec == null || spec.isNop()) && windowState.mGlobalScale == 1.0f) {
|
||||
@@ -7500,16 +7501,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
public boolean setMagnificationCallbacks(int displayId,
|
||||
@Nullable MagnificationCallbacks callbacks) {
|
||||
synchronized (mGlobalLock) {
|
||||
if (mAccessibilityController == null) {
|
||||
mAccessibilityController = new AccessibilityController(
|
||||
WindowManagerService.this);
|
||||
}
|
||||
boolean result = mAccessibilityController.setMagnificationCallbacks(
|
||||
displayId, callbacks);
|
||||
if (!mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController = null;
|
||||
}
|
||||
return result;
|
||||
return mAccessibilityController.setMagnificationCallbacks(displayId, callbacks);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7517,17 +7509,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
public boolean setWindowsForAccessibilityCallback(int displayId,
|
||||
WindowsForAccessibilityCallback callback) {
|
||||
synchronized (mGlobalLock) {
|
||||
if (mAccessibilityController == null) {
|
||||
mAccessibilityController = new AccessibilityController(
|
||||
WindowManagerService.this);
|
||||
}
|
||||
final boolean result =
|
||||
mAccessibilityController.setWindowsForAccessibilityCallback(
|
||||
displayId, callback);
|
||||
if (!mAccessibilityController.hasCallbacks()) {
|
||||
mAccessibilityController = null;
|
||||
}
|
||||
return result;
|
||||
return mAccessibilityController
|
||||
.setWindowsForAccessibilityCallback(displayId, callback);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7700,13 +7683,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
@Override
|
||||
public void computeWindowsForAccessibility(int displayId) {
|
||||
final AccessibilityController accessibilityController;
|
||||
synchronized (mGlobalLock) {
|
||||
accessibilityController = mAccessibilityController;
|
||||
}
|
||||
if (accessibilityController != null) {
|
||||
accessibilityController.performComputeChangedWindowsNot(displayId, true);
|
||||
}
|
||||
mAccessibilityController.performComputeChangedWindowsNot(displayId, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2216,7 +2216,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
mWmService.mAccessibilityController;
|
||||
final int winTransit = TRANSIT_EXIT;
|
||||
mWinAnimator.applyAnimationLocked(winTransit, false /* isEntrance */);
|
||||
if (accessibilityController != null) {
|
||||
if (accessibilityController.hasCallbacks()) {
|
||||
accessibilityController.onWindowTransition(this, winTransit);
|
||||
}
|
||||
}
|
||||
@@ -2237,7 +2237,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
}
|
||||
if (isVisibleNow() && animateExit) {
|
||||
mWinAnimator.applyAnimationLocked(TRANSIT_EXIT, false);
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onWindowTransition(this, TRANSIT_EXIT);
|
||||
}
|
||||
changed = true;
|
||||
@@ -2287,7 +2287,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
startMoveAnimation(left, top);
|
||||
}
|
||||
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onSomeWindowResizedOrMoved(getDisplayId());
|
||||
}
|
||||
updateLocationInParentDisplayIfNeeded();
|
||||
@@ -2573,7 +2573,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
setDisplayLayoutNeeded();
|
||||
mWmService.requestTraversal();
|
||||
}
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onWindowTransition(this, transit);
|
||||
}
|
||||
}
|
||||
@@ -3598,7 +3598,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
if (mAttrs.type >= FIRST_SYSTEM_WINDOW && mAttrs.type != TYPE_TOAST) {
|
||||
mWmService.mAtmService.mActiveUids.onNonAppSurfaceVisibilityChanged(mOwnerUid, shown);
|
||||
}
|
||||
if (mIsImWindow && mWmService.mAccessibilityController != null) {
|
||||
if (mIsImWindow && mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onImeSurfaceShownChanged(this, shown);
|
||||
}
|
||||
}
|
||||
@@ -3942,7 +3942,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
"Requested redraw for orientation change: %s", this);
|
||||
}
|
||||
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onSomeWindowResizedOrMoved(displayId);
|
||||
}
|
||||
updateLocationInParentDisplayIfNeeded();
|
||||
@@ -5068,7 +5068,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
if (isAnimating()) {
|
||||
return;
|
||||
}
|
||||
if (mWmService.mAccessibilityController != null) {
|
||||
if (mWmService.mAccessibilityController.hasCallbacks()) {
|
||||
mWmService.mAccessibilityController.onSomeWindowResizedOrMoved(getDisplayId());
|
||||
}
|
||||
|
||||
|
||||
@@ -677,7 +677,7 @@ class WindowStateAnimator {
|
||||
applyAnimationLocked(transit, true);
|
||||
}
|
||||
|
||||
if (mService.mAccessibilityController != null) {
|
||||
if (mService.mAccessibilityController.hasCallbacks()) {
|
||||
mService.mAccessibilityController.onWindowTransition(mWin, transit);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user