Loading core/java/android/view/WindowManager.java +15 −2 Original line number Diff line number Diff line Loading @@ -3604,9 +3604,8 @@ public interface WindowManager extends ViewManager { public static final int PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION = 1 << 21; /** * Flag to prevent the window from being magnified by the accessibility magnifier. * Flag to prevent the window from being magnified by the accessibility magnification. * * TODO(b/190623172): This is a temporary solution and need to find out another way instead. * @hide */ public static final int PRIVATE_FLAG_NOT_MAGNIFIABLE = 1 << 22; Loading Loading @@ -3641,6 +3640,15 @@ public interface WindowManager extends ViewManager { */ public static final int PRIVATE_FLAG_OPT_OUT_EDGE_TO_EDGE = 1 << 26; /** * Flag to indicate that this window is part of input method for being magnified by the * accessibility magnification * * TODO(b/190623172): This is a temporary solution and need to find out another way instead. * @hide */ public static final int PRIVATE_FLAG_INPUT_METHOD_WINDOW = 1 << 27; /** * Flag to indicate that the window is controlling how it fits window insets on its own. * So we don't need to adjust its attributes for fitting window insets. Loading Loading @@ -3711,6 +3719,7 @@ public interface WindowManager extends ViewManager { SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS, PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY, PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION, PRIVATE_FLAG_INPUT_METHOD_WINDOW, PRIVATE_FLAG_NOT_MAGNIFIABLE, PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC, PRIVATE_FLAG_CONSUME_IME_INSETS, Loading Loading @@ -3806,6 +3815,10 @@ public interface WindowManager extends ViewManager { mask = PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION, equals = PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION, name = "EXCLUDE_FROM_SCREEN_MAGNIFICATION"), @ViewDebug.FlagToString( mask = PRIVATE_FLAG_INPUT_METHOD_WINDOW, equals = PRIVATE_FLAG_INPUT_METHOD_WINDOW, name = "INPUT_METHOD_WINDOW"), @ViewDebug.FlagToString( mask = PRIVATE_FLAG_NOT_MAGNIFIABLE, equals = PRIVATE_FLAG_NOT_MAGNIFIABLE, Loading core/java/com/android/internal/view/inline/InlineTooltipUi.java +1 −1 Original line number Diff line number Diff line Loading @@ -320,7 +320,7 @@ public final class InlineTooltipUi extends PopupWindow implements AutoCloseable params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; params.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_NOT_MAGNIFIABLE; WindowManager.LayoutParams.PRIVATE_FLAG_INPUT_METHOD_WINDOW; mContentContainer.addOnLayoutChangeListener(mAnchoredOnLayoutChangeListener); mWm.addView(mContentContainer, params); mShowing = true; Loading services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON; import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.LayoutParams.MATCH_PARENT; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INPUT_METHOD_WINDOW; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NOT_MAGNIFIABLE; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OPT_OUT_EDGE_TO_EDGE; Loading Loading @@ -4949,7 +4950,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP || mAttrs.type == TYPE_NAVIGATION_BAR_PANEL) { return false; } if (mAttrs.type == TYPE_INPUT_METHOD if ((mAttrs.privateFlags & PRIVATE_FLAG_INPUT_METHOD_WINDOW) != 0 || mAttrs.type == TYPE_INPUT_METHOD || mAttrs.type == TYPE_INPUT_METHOD_DIALOG) { return mWmService.isMagnifyImeEnabled(); } Loading services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +44 −30 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; import static android.view.WindowManager.LayoutParams.FLAG_SPLIT_TOUCH; import static android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INPUT_METHOD_WINDOW; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SYSTEM_APPLICATION_OVERLAY; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY; import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY; Loading Loading @@ -296,6 +297,24 @@ public class WindowStateTests extends WindowTestsBase { assertFalse(window.isVisibleByPolicy()); } @Test public void testShouldMagnify_typeIsMagnificationAndNavBarPanel_shouldNotMagnify() { final WindowState a11yMagWindow = newWindowBuilder("a11yMagWindow", TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY).build(); final WindowState magWindow = newWindowBuilder("magWindow", TYPE_MAGNIFICATION_OVERLAY).build(); final WindowState navPanelWindow = newWindowBuilder("navPanelWindow", TYPE_NAVIGATION_BAR_PANEL).build(); a11yMagWindow.setHasSurface(true); magWindow.setHasSurface(true); navPanelWindow.setHasSurface(true); assertFalse(a11yMagWindow.shouldMagnify()); assertFalse(magWindow.shouldMagnify()); assertFalse(navPanelWindow.shouldMagnify()); } @Test @DisableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) Loading @@ -309,16 +328,18 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); assertFalse(privateImeWindow.shouldMagnify()); } @Test Loading @@ -334,37 +355,18 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); } @Test public void testMagnifyIme_typeIsMagnification_shouldNotMagnify() { final WindowState a11yMagWindow = newWindowBuilder("a11yMagWindow", TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY).build(); final WindowState magWindow = newWindowBuilder("magWindow", TYPE_MAGNIFICATION_OVERLAY).build(); final WindowState navPanelWindow = newWindowBuilder("navPanelWindow", TYPE_NAVIGATION_BAR_PANEL).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); a11yMagWindow.setHasSurface(true); magWindow.setHasSurface(true); navPanelWindow.setHasSurface(true); navWindow.setHasSurface(true); assertFalse(a11yMagWindow.shouldMagnify()); assertFalse(magWindow.shouldMagnify()); assertFalse(navPanelWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); assertFalse(privateImeWindow.shouldMagnify()); } @Test Loading @@ -380,13 +382,18 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(privateImeWindow.shouldMagnify()); } @Test Loading @@ -401,15 +408,20 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); mWm.mSettingsObserver.loadSettings(); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(privateImeWindow.shouldMagnify()); } @Test Loading @@ -424,18 +436,20 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); mWm.mSettingsObserver.loadSettings(); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); assertFalse(privateImeWindow.shouldMagnify()); } @Test Loading Loading
core/java/android/view/WindowManager.java +15 −2 Original line number Diff line number Diff line Loading @@ -3604,9 +3604,8 @@ public interface WindowManager extends ViewManager { public static final int PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION = 1 << 21; /** * Flag to prevent the window from being magnified by the accessibility magnifier. * Flag to prevent the window from being magnified by the accessibility magnification. * * TODO(b/190623172): This is a temporary solution and need to find out another way instead. * @hide */ public static final int PRIVATE_FLAG_NOT_MAGNIFIABLE = 1 << 22; Loading Loading @@ -3641,6 +3640,15 @@ public interface WindowManager extends ViewManager { */ public static final int PRIVATE_FLAG_OPT_OUT_EDGE_TO_EDGE = 1 << 26; /** * Flag to indicate that this window is part of input method for being magnified by the * accessibility magnification * * TODO(b/190623172): This is a temporary solution and need to find out another way instead. * @hide */ public static final int PRIVATE_FLAG_INPUT_METHOD_WINDOW = 1 << 27; /** * Flag to indicate that the window is controlling how it fits window insets on its own. * So we don't need to adjust its attributes for fitting window insets. Loading Loading @@ -3711,6 +3719,7 @@ public interface WindowManager extends ViewManager { SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS, PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY, PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION, PRIVATE_FLAG_INPUT_METHOD_WINDOW, PRIVATE_FLAG_NOT_MAGNIFIABLE, PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC, PRIVATE_FLAG_CONSUME_IME_INSETS, Loading Loading @@ -3806,6 +3815,10 @@ public interface WindowManager extends ViewManager { mask = PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION, equals = PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION, name = "EXCLUDE_FROM_SCREEN_MAGNIFICATION"), @ViewDebug.FlagToString( mask = PRIVATE_FLAG_INPUT_METHOD_WINDOW, equals = PRIVATE_FLAG_INPUT_METHOD_WINDOW, name = "INPUT_METHOD_WINDOW"), @ViewDebug.FlagToString( mask = PRIVATE_FLAG_NOT_MAGNIFIABLE, equals = PRIVATE_FLAG_NOT_MAGNIFIABLE, Loading
core/java/com/android/internal/view/inline/InlineTooltipUi.java +1 −1 Original line number Diff line number Diff line Loading @@ -320,7 +320,7 @@ public final class InlineTooltipUi extends PopupWindow implements AutoCloseable params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; params.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_NOT_MAGNIFIABLE; WindowManager.LayoutParams.PRIVATE_FLAG_INPUT_METHOD_WINDOW; mContentContainer.addOnLayoutChangeListener(mAnchoredOnLayoutChangeListener); mWm.addView(mContentContainer, params); mShowing = true; Loading
services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON; import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.LayoutParams.MATCH_PARENT; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INPUT_METHOD_WINDOW; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NOT_MAGNIFIABLE; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OPT_OUT_EDGE_TO_EDGE; Loading Loading @@ -4949,7 +4950,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP || mAttrs.type == TYPE_NAVIGATION_BAR_PANEL) { return false; } if (mAttrs.type == TYPE_INPUT_METHOD if ((mAttrs.privateFlags & PRIVATE_FLAG_INPUT_METHOD_WINDOW) != 0 || mAttrs.type == TYPE_INPUT_METHOD || mAttrs.type == TYPE_INPUT_METHOD_DIALOG) { return mWmService.isMagnifyImeEnabled(); } Loading
services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +44 −30 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; import static android.view.WindowManager.LayoutParams.FLAG_SPLIT_TOUCH; import static android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INPUT_METHOD_WINDOW; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SYSTEM_APPLICATION_OVERLAY; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY; import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY; Loading Loading @@ -296,6 +297,24 @@ public class WindowStateTests extends WindowTestsBase { assertFalse(window.isVisibleByPolicy()); } @Test public void testShouldMagnify_typeIsMagnificationAndNavBarPanel_shouldNotMagnify() { final WindowState a11yMagWindow = newWindowBuilder("a11yMagWindow", TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY).build(); final WindowState magWindow = newWindowBuilder("magWindow", TYPE_MAGNIFICATION_OVERLAY).build(); final WindowState navPanelWindow = newWindowBuilder("navPanelWindow", TYPE_NAVIGATION_BAR_PANEL).build(); a11yMagWindow.setHasSurface(true); magWindow.setHasSurface(true); navPanelWindow.setHasSurface(true); assertFalse(a11yMagWindow.shouldMagnify()); assertFalse(magWindow.shouldMagnify()); assertFalse(navPanelWindow.shouldMagnify()); } @Test @DisableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) Loading @@ -309,16 +328,18 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); assertFalse(privateImeWindow.shouldMagnify()); } @Test Loading @@ -334,37 +355,18 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); } @Test public void testMagnifyIme_typeIsMagnification_shouldNotMagnify() { final WindowState a11yMagWindow = newWindowBuilder("a11yMagWindow", TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY).build(); final WindowState magWindow = newWindowBuilder("magWindow", TYPE_MAGNIFICATION_OVERLAY).build(); final WindowState navPanelWindow = newWindowBuilder("navPanelWindow", TYPE_NAVIGATION_BAR_PANEL).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); a11yMagWindow.setHasSurface(true); magWindow.setHasSurface(true); navPanelWindow.setHasSurface(true); navWindow.setHasSurface(true); assertFalse(a11yMagWindow.shouldMagnify()); assertFalse(magWindow.shouldMagnify()); assertFalse(navPanelWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); assertFalse(privateImeWindow.shouldMagnify()); } @Test Loading @@ -380,13 +382,18 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(privateImeWindow.shouldMagnify()); } @Test Loading @@ -401,15 +408,20 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); mWm.mSettingsObserver.loadSettings(); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(privateImeWindow.shouldMagnify()); } @Test Loading @@ -424,18 +436,20 @@ public class WindowStateTests extends WindowTestsBase { final WindowState imeWindow = newWindowBuilder("imeWindow", TYPE_INPUT_METHOD).build(); final WindowState imeDialogWindow = newWindowBuilder("imeDialogWindow", TYPE_INPUT_METHOD_DIALOG).build(); final WindowState navWindow = newWindowBuilder("navWindow", TYPE_NAVIGATION_BAR).build(); final WindowState privateImeWindow = newWindowBuilder("appWindow", TYPE_APPLICATION).build(); privateImeWindow.mAttrs.privateFlags |= PRIVATE_FLAG_INPUT_METHOD_WINDOW; imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); privateImeWindow.setHasSurface(true); mWm.mSettingsObserver.loadSettings(); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); assertFalse(privateImeWindow.shouldMagnify()); } @Test Loading