Loading services/core/java/com/android/server/wm/AccessibilityController.java +26 −0 Original line number Diff line number Diff line Loading @@ -607,6 +607,13 @@ final class AccessibilityController { availableBounds.op(windowBounds, Region.Op.DIFFERENCE); } // Count letterbox into nonMagnifiedBounds if (windowState.isLetterboxedForDisplayCutoutLw()) { Region letterboxBounds = getLetterboxBounds(windowState); nonMagnifiedBounds.op(letterboxBounds, Region.Op.UNION); availableBounds.op(letterboxBounds, Region.Op.DIFFERENCE); } // Update accounted bounds Region accountedBounds = mTempRegion2; accountedBounds.set(mMagnificationRegion); Loading Loading @@ -658,6 +665,25 @@ final class AccessibilityController { } } private Region getLetterboxBounds(WindowState windowState) { final AppWindowToken appToken = windowState.mAppToken; if (appToken == null) { return new Region(); } mDisplay.getRealSize(mTempPoint); final Rect letterboxInsets = appToken.getLetterboxInsets(); final int screenWidth = mTempPoint.x; final int screenHeight = mTempPoint.y; final Rect nonLetterboxRect = mTempRect1; final Region letterboxBounds = mTempRegion3; nonLetterboxRect.set(0, 0, screenWidth, screenHeight); nonLetterboxRect.inset(letterboxInsets); letterboxBounds.set(0, 0, screenWidth, screenHeight); letterboxBounds.op(nonLetterboxRect, Region.Op.DIFFERENCE); return letterboxBounds; } public void onRotationChangedLocked() { // If we are showing the magnification border, hide it immediately so // the user does not see strange artifacts during rotation. The screenshot Loading Loading
services/core/java/com/android/server/wm/AccessibilityController.java +26 −0 Original line number Diff line number Diff line Loading @@ -607,6 +607,13 @@ final class AccessibilityController { availableBounds.op(windowBounds, Region.Op.DIFFERENCE); } // Count letterbox into nonMagnifiedBounds if (windowState.isLetterboxedForDisplayCutoutLw()) { Region letterboxBounds = getLetterboxBounds(windowState); nonMagnifiedBounds.op(letterboxBounds, Region.Op.UNION); availableBounds.op(letterboxBounds, Region.Op.DIFFERENCE); } // Update accounted bounds Region accountedBounds = mTempRegion2; accountedBounds.set(mMagnificationRegion); Loading Loading @@ -658,6 +665,25 @@ final class AccessibilityController { } } private Region getLetterboxBounds(WindowState windowState) { final AppWindowToken appToken = windowState.mAppToken; if (appToken == null) { return new Region(); } mDisplay.getRealSize(mTempPoint); final Rect letterboxInsets = appToken.getLetterboxInsets(); final int screenWidth = mTempPoint.x; final int screenHeight = mTempPoint.y; final Rect nonLetterboxRect = mTempRect1; final Region letterboxBounds = mTempRegion3; nonLetterboxRect.set(0, 0, screenWidth, screenHeight); nonLetterboxRect.inset(letterboxInsets); letterboxBounds.set(0, 0, screenWidth, screenHeight); letterboxBounds.op(nonLetterboxRect, Region.Op.DIFFERENCE); return letterboxBounds; } public void onRotationChangedLocked() { // If we are showing the magnification border, hide it immediately so // the user does not see strange artifacts during rotation. The screenshot Loading