Fix the indicator of magnification around the mirror window

The indicator of magnification is around the mirror window
because it's unmagnifiable. This phenomenon happens when switching
the magnification mode. To have better transition experience, we
exclude the A11y magnfication overlay when calculating the
magnification region.

Bug: 153852242
Test: manual test: show mirror window when the border is visible.
Change-Id: Ie95a04012dc31ef844a7f5eea87c2f2e253b6533
This commit is contained in:
ryanlwlin
2020-05-04 14:58:13 +08:00
parent cc640dd53f
commit 2d2e612b65

View File

@@ -18,6 +18,7 @@ package com.android.server.wm;
import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
import static android.view.WindowManager.LayoutParams.TYPE_MAGNIFICATION_OVERLAY;
@@ -681,7 +682,9 @@ final class AccessibilityController {
final int visibleWindowCount = visibleWindows.size();
for (int i = visibleWindowCount - 1; i >= 0; i--) {
WindowState windowState = visibleWindows.valueAt(i);
if ((windowState.mAttrs.type == TYPE_MAGNIFICATION_OVERLAY)
final int windowType = windowState.mAttrs.type;
if ((windowType == TYPE_MAGNIFICATION_OVERLAY
|| windowType == TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY)
|| ((windowState.mAttrs.privateFlags
& PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY) != 0)) {
continue;