From a87330978abdea0fc095f98a0b1ea9ef204f8eed Mon Sep 17 00:00:00 2001 From: mincheli Date: Thu, 16 Apr 2020 14:52:27 +0800 Subject: Dumps magnification by accessibility controller Bug: 151129165 Test: turn on magnification & adb shell dumpsys window windows Change-Id: I20fb9604825e55dc301c1c6ec3c1862fad5b4df6 --- .../android/server/wm/AccessibilityController.java | 27 ++++++++++++++++++++++ .../android/server/wm/WindowManagerService.java | 12 +++------- .../com/android/server/wm/WindowStateAnimator.java | 1 + 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index abccf99579b7..9d630293c82d 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -66,6 +66,7 @@ import com.android.server.policy.WindowManagerPolicy; import com.android.server.wm.WindowManagerInternal.MagnificationCallbacks; import com.android.server.wm.WindowManagerInternal.WindowsForAccessibilityCallback; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -341,6 +342,16 @@ final class AccessibilityController { windowState.getTransformationMatrix(sTempFloats, outMatrix); } + void dump(PrintWriter pw, String prefix) { + for (int i = 0; i < mDisplayMagnifiers.size(); i++) { + final DisplayMagnifier displayMagnifier = mDisplayMagnifiers.valueAt(i); + if (displayMagnifier != null) { + displayMagnifier.dump(pw, prefix + + "Magnification display# " + mDisplayMagnifiers.keyAt(i)); + } + } + } + /** * This class encapsulates the functionality related to display magnification. */ @@ -551,6 +562,10 @@ final class AccessibilityController { mMagnifedViewport.drawWindowIfNeededLocked(t); } + void dump(PrintWriter pw, String prefix) { + mMagnifedViewport.dump(pw, prefix); + } + private final class MagnifiedViewport { private final SparseArray mTempWindowStates = @@ -820,6 +835,10 @@ final class AccessibilityController { }, false /* traverseTopToBottom */ ); } + void dump(PrintWriter pw, String prefix) { + mWindow.dump(pw, prefix); + } + private final class ViewportWindow { private static final String SURFACE_TITLE = "Magnification Overlay"; @@ -985,6 +1004,14 @@ final class AccessibilityController { mSurface.release(); } + void dump(PrintWriter pw, String prefix) { + pw.println(prefix + + " mBounds= " + mBounds + + " mDirtyRect= " + mDirtyRect + + " mWidth= " + mSurfaceControl.getWidth() + + " mHeight= " + mSurfaceControl.getHeight()); + } + private final class AnimationController extends Handler { private static final String PROPERTY_NAME_ALPHA = "alpha"; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index a5014145aa60..0857204e4ffe 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -6113,15 +6113,6 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mInputMethodInputTarget in display# "); pw.print(displayId); pw.print(' '); pw.println(inputMethodInputTarget); } - if (mAccessibilityController != null) { - final Region magnificationRegion = new Region(); - mAccessibilityController.getMagnificationRegionLocked(displayId, - magnificationRegion); - pw.print(" mMagnificationRegion in display# "); - pw.print(displayId); - pw.print(' '); - pw.println(magnificationRegion); - } }); pw.print(" mInTouchMode="); pw.println(mInTouchMode); pw.print(" mLastDisplayFreezeDuration="); @@ -6137,6 +6128,9 @@ public class WindowManagerService extends IWindowManager.Stub mInputManagerCallback.dump(pw, " "); mTaskSnapshotController.dump(pw, " "); + if (mAccessibilityController != null) { + mAccessibilityController.dump(pw, " "); + } if (dumpAll) { final WindowState imeWindow = mRoot.getCurrentInputMethodWindow(); diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 99577077d65d..a2930ab0ae2e 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -1476,6 +1476,7 @@ class WindowStateAnimator { if (dumpAll) { pw.print(prefix); pw.print("mDrawState="); pw.print(drawStateToString()); pw.print(prefix); pw.print(" mLastHidden="); pw.println(mLastHidden); + pw.print(prefix); pw.print("mEnterAnimationPending=" + mEnterAnimationPending); pw.print(prefix); pw.print("mSystemDecorRect="); mSystemDecorRect.printShortString(pw); pw.print(" mLastClipRect="); mLastClipRect.printShortString(pw); -- cgit v1.2.3-59-g8ed1b