Loading services/core/java/com/android/server/wm/WindowManagerService.java +14 −14 Original line number Diff line number Diff line Loading @@ -699,8 +699,8 @@ public class WindowManagerService extends IWindowManager.Stub boolean mBootAnimationStopped = false; long mBootWaitForWindowsStartTime = -1; // Cache whether to Magnify the Navigation Bar and IME. private boolean mMagnifyNavAndIme = false; // Cache whether to Magnify the IME. private boolean mMagnifyIme = false; /** Dump of the windows and app tokens at the time of the last ANR. Cleared after * LAST_ANR_LIFETIME_DURATION_MSECS */ Loading Loading @@ -819,7 +819,7 @@ public class WindowManagerService extends IWindowManager.Stub Settings.Secure.getUriFor(Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS); private final Uri mDisableSecureWindowsUri = Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS); private final Uri mMagnifyNavAndImeEnabledUri = Settings.Secure.getUriFor( private final Uri mMagnifyImeEnabledUri = Settings.Secure.getUriFor( Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME); private final Uri mPolicyControlUri = Settings.Global.getUriFor(Settings.Global.POLICY_CONTROL); Loading Loading @@ -854,7 +854,7 @@ public class WindowManagerService extends IWindowManager.Stub resolver.registerContentObserver(mDisableSecureWindowsUri, false, this, UserHandle.USER_ALL); if (com.android.server.accessibility.Flags.enableMagnificationMagnifyNavBarAndIme()) { resolver.registerContentObserver(mMagnifyNavAndImeEnabledUri, false, this, resolver.registerContentObserver(mMagnifyImeEnabledUri, false, this, UserHandle.USER_ALL); } resolver.registerContentObserver(mPolicyControlUri, false, this, UserHandle.USER_ALL); Loading Loading @@ -918,8 +918,8 @@ public class WindowManagerService extends IWindowManager.Stub return; } if (mMagnifyNavAndImeEnabledUri.equals(uri)) { updateMagnifyNavAndIme(); if (mMagnifyImeEnabledUri.equals(uri)) { updateMagnifyIme(); } if (mDevelopmentOverrideDesktopExperienceUri.equals(uri)) { Loading @@ -946,7 +946,7 @@ public class WindowManagerService extends IWindowManager.Stub void loadSettings() { updateMaximumObscuringOpacityForTouch(); updateDisableSecureWindows(); updateMagnifyNavAndIme(); updateMagnifyIme(); } void updateMaximumObscuringOpacityForTouch() { Loading Loading @@ -1056,23 +1056,23 @@ public class WindowManagerService extends IWindowManager.Stub } } void updateMagnifyNavAndIme() { void updateMagnifyIme() { if (!com.android.server.accessibility.Flags.enableMagnificationMagnifyNavBarAndIme()) { mMagnifyNavAndIme = false; mMagnifyIme = false; return; } boolean enabledMagnifyNavAndIme = Settings.Secure.getIntForUser( boolean enabledMagnifyIme = Settings.Secure.getIntForUser( mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, AccessibilityUtils.getMagnificationMagnifyKeyboardDefaultValue(mContext), mCurrentUserId) == 1; if (mMagnifyNavAndIme == enabledMagnifyNavAndIme) { if (mMagnifyIme == enabledMagnifyIme) { return; } synchronized (mGlobalLock) { mMagnifyNavAndIme = enabledMagnifyNavAndIme; mMagnifyIme = enabledMagnifyIme; } } } Loading Loading @@ -1514,8 +1514,8 @@ public class WindowManagerService extends IWindowManager.Stub } @VisibleForTesting boolean isMagnifyNavAndImeEnabled() { return mMagnifyNavAndIme; boolean isMagnifyImeEnabled() { return mMagnifyIme; } DisplayAreaPolicy.Provider getDisplayAreaPolicyProvider() { Loading services/core/java/com/android/server/wm/WindowState.java +3 −3 Original line number Diff line number Diff line Loading @@ -4907,15 +4907,15 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP boolean shouldMagnify() { if (mAttrs.type == TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY || mAttrs.type == TYPE_MAGNIFICATION_OVERLAY || mAttrs.type == TYPE_NAVIGATION_BAR // It's tempting to wonder: Have we forgotten the rounded corners overlay? // worry not: it's a fake TYPE_NAVIGATION_BAR_PANEL || mAttrs.type == TYPE_NAVIGATION_BAR_PANEL) { return false; } if (mAttrs.type == TYPE_INPUT_METHOD || mAttrs.type == TYPE_INPUT_METHOD_DIALOG || mAttrs.type == TYPE_NAVIGATION_BAR) { return mWmService.isMagnifyNavAndImeEnabled(); || mAttrs.type == TYPE_INPUT_METHOD_DIALOG) { return mWmService.isMagnifyImeEnabled(); } if ((mAttrs.privateFlags & PRIVATE_FLAG_NOT_MAGNIFIABLE) != 0) { return false; Loading services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +11 −17 Original line number Diff line number Diff line Loading @@ -284,7 +284,7 @@ public class WindowStateTests extends WindowTestsBase { @Test @DisableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOffAndSettingsEnabled_typeIsIme_shouldNotMagnify() { public void testMagnifyIme_flagOffAndSettingsEnabled_typeIsIme_shouldNotMagnify() { final ContentResolver cr = useFakeSettingsProvider(); Settings.Secure.putInt(cr, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, 1); Loading @@ -300,7 +300,7 @@ public class WindowStateTests extends WindowTestsBase { imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); assertFalse(mWm.isMagnifyNavAndImeEnabled()); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); Loading @@ -309,7 +309,7 @@ public class WindowStateTests extends WindowTestsBase { @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndSettingsDisabled_typeIsIme_shouldNotMagnify() { public void testMagnifyIme_flagOnAndSettingsDisabled_typeIsIme_shouldNotMagnify() { final ContentResolver cr = useFakeSettingsProvider(); Settings.Secure.putInt(cr, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, 0); Loading @@ -325,14 +325,14 @@ public class WindowStateTests extends WindowTestsBase { imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); assertFalse(mWm.isMagnifyNavAndImeEnabled()); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); } @Test public void testMagnifyNavAndIme_typeIsMagnification_shouldNotMagnify() { public void testMagnifyIme_typeIsMagnification_shouldNotMagnify() { final WindowState a11yMagWindow = newWindowBuilder("a11yMagWindow", TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY).build(); final WindowState magWindow = newWindowBuilder("magWindow", Loading @@ -352,7 +352,7 @@ public class WindowStateTests extends WindowTestsBase { @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndSettingsEnabled_typeIsIme_shouldMagnify() { public void testMagnifyIme_flagOnAndSettingsEnabled_typeIsIme_shouldMagnify() { final ContentResolver cr = useFakeSettingsProvider(); Settings.Secure.putInt(cr, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, 1); Loading @@ -362,22 +362,19 @@ 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(); imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); assertTrue(mWm.isMagnifyNavAndImeEnabled()); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(navWindow.shouldMagnify()); } @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndDefaultEnable_typeIsIme_shouldMagnify() { public void testMagnifyIme_flagOnAndDefaultEnable_typeIsIme_shouldMagnify() { useFakeSettingsProvider(); // This resets the Settings.Secure value. spyOn(mContext.getResources()); when(mContext.getResources().getBoolean( Loading @@ -386,24 +383,21 @@ 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(); imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); mWm.mSettingsObserver.loadSettings(); assertTrue(mWm.isMagnifyNavAndImeEnabled()); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(navWindow.shouldMagnify()); } @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndDefaultDisable_typeIsIme_shouldNotMagnify() { public void testMagnifyIme_flagOnAndDefaultDisable_typeIsIme_shouldNotMagnify() { useFakeSettingsProvider(); // This resets the Settings.Secure value. spyOn(mContext.getResources()); when(mContext.getResources().getBoolean( Loading @@ -420,7 +414,7 @@ public class WindowStateTests extends WindowTestsBase { mWm.mSettingsObserver.loadSettings(); assertFalse(mWm.isMagnifyNavAndImeEnabled()); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); Loading Loading
services/core/java/com/android/server/wm/WindowManagerService.java +14 −14 Original line number Diff line number Diff line Loading @@ -699,8 +699,8 @@ public class WindowManagerService extends IWindowManager.Stub boolean mBootAnimationStopped = false; long mBootWaitForWindowsStartTime = -1; // Cache whether to Magnify the Navigation Bar and IME. private boolean mMagnifyNavAndIme = false; // Cache whether to Magnify the IME. private boolean mMagnifyIme = false; /** Dump of the windows and app tokens at the time of the last ANR. Cleared after * LAST_ANR_LIFETIME_DURATION_MSECS */ Loading Loading @@ -819,7 +819,7 @@ public class WindowManagerService extends IWindowManager.Stub Settings.Secure.getUriFor(Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS); private final Uri mDisableSecureWindowsUri = Settings.Secure.getUriFor(Settings.Secure.DISABLE_SECURE_WINDOWS); private final Uri mMagnifyNavAndImeEnabledUri = Settings.Secure.getUriFor( private final Uri mMagnifyImeEnabledUri = Settings.Secure.getUriFor( Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME); private final Uri mPolicyControlUri = Settings.Global.getUriFor(Settings.Global.POLICY_CONTROL); Loading Loading @@ -854,7 +854,7 @@ public class WindowManagerService extends IWindowManager.Stub resolver.registerContentObserver(mDisableSecureWindowsUri, false, this, UserHandle.USER_ALL); if (com.android.server.accessibility.Flags.enableMagnificationMagnifyNavBarAndIme()) { resolver.registerContentObserver(mMagnifyNavAndImeEnabledUri, false, this, resolver.registerContentObserver(mMagnifyImeEnabledUri, false, this, UserHandle.USER_ALL); } resolver.registerContentObserver(mPolicyControlUri, false, this, UserHandle.USER_ALL); Loading Loading @@ -918,8 +918,8 @@ public class WindowManagerService extends IWindowManager.Stub return; } if (mMagnifyNavAndImeEnabledUri.equals(uri)) { updateMagnifyNavAndIme(); if (mMagnifyImeEnabledUri.equals(uri)) { updateMagnifyIme(); } if (mDevelopmentOverrideDesktopExperienceUri.equals(uri)) { Loading @@ -946,7 +946,7 @@ public class WindowManagerService extends IWindowManager.Stub void loadSettings() { updateMaximumObscuringOpacityForTouch(); updateDisableSecureWindows(); updateMagnifyNavAndIme(); updateMagnifyIme(); } void updateMaximumObscuringOpacityForTouch() { Loading Loading @@ -1056,23 +1056,23 @@ public class WindowManagerService extends IWindowManager.Stub } } void updateMagnifyNavAndIme() { void updateMagnifyIme() { if (!com.android.server.accessibility.Flags.enableMagnificationMagnifyNavBarAndIme()) { mMagnifyNavAndIme = false; mMagnifyIme = false; return; } boolean enabledMagnifyNavAndIme = Settings.Secure.getIntForUser( boolean enabledMagnifyIme = Settings.Secure.getIntForUser( mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, AccessibilityUtils.getMagnificationMagnifyKeyboardDefaultValue(mContext), mCurrentUserId) == 1; if (mMagnifyNavAndIme == enabledMagnifyNavAndIme) { if (mMagnifyIme == enabledMagnifyIme) { return; } synchronized (mGlobalLock) { mMagnifyNavAndIme = enabledMagnifyNavAndIme; mMagnifyIme = enabledMagnifyIme; } } } Loading Loading @@ -1514,8 +1514,8 @@ public class WindowManagerService extends IWindowManager.Stub } @VisibleForTesting boolean isMagnifyNavAndImeEnabled() { return mMagnifyNavAndIme; boolean isMagnifyImeEnabled() { return mMagnifyIme; } DisplayAreaPolicy.Provider getDisplayAreaPolicyProvider() { Loading
services/core/java/com/android/server/wm/WindowState.java +3 −3 Original line number Diff line number Diff line Loading @@ -4907,15 +4907,15 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP boolean shouldMagnify() { if (mAttrs.type == TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY || mAttrs.type == TYPE_MAGNIFICATION_OVERLAY || mAttrs.type == TYPE_NAVIGATION_BAR // It's tempting to wonder: Have we forgotten the rounded corners overlay? // worry not: it's a fake TYPE_NAVIGATION_BAR_PANEL || mAttrs.type == TYPE_NAVIGATION_BAR_PANEL) { return false; } if (mAttrs.type == TYPE_INPUT_METHOD || mAttrs.type == TYPE_INPUT_METHOD_DIALOG || mAttrs.type == TYPE_NAVIGATION_BAR) { return mWmService.isMagnifyNavAndImeEnabled(); || mAttrs.type == TYPE_INPUT_METHOD_DIALOG) { return mWmService.isMagnifyImeEnabled(); } if ((mAttrs.privateFlags & PRIVATE_FLAG_NOT_MAGNIFIABLE) != 0) { return false; Loading
services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +11 −17 Original line number Diff line number Diff line Loading @@ -284,7 +284,7 @@ public class WindowStateTests extends WindowTestsBase { @Test @DisableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOffAndSettingsEnabled_typeIsIme_shouldNotMagnify() { public void testMagnifyIme_flagOffAndSettingsEnabled_typeIsIme_shouldNotMagnify() { final ContentResolver cr = useFakeSettingsProvider(); Settings.Secure.putInt(cr, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, 1); Loading @@ -300,7 +300,7 @@ public class WindowStateTests extends WindowTestsBase { imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); assertFalse(mWm.isMagnifyNavAndImeEnabled()); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); Loading @@ -309,7 +309,7 @@ public class WindowStateTests extends WindowTestsBase { @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndSettingsDisabled_typeIsIme_shouldNotMagnify() { public void testMagnifyIme_flagOnAndSettingsDisabled_typeIsIme_shouldNotMagnify() { final ContentResolver cr = useFakeSettingsProvider(); Settings.Secure.putInt(cr, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, 0); Loading @@ -325,14 +325,14 @@ public class WindowStateTests extends WindowTestsBase { imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); assertFalse(mWm.isMagnifyNavAndImeEnabled()); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); } @Test public void testMagnifyNavAndIme_typeIsMagnification_shouldNotMagnify() { public void testMagnifyIme_typeIsMagnification_shouldNotMagnify() { final WindowState a11yMagWindow = newWindowBuilder("a11yMagWindow", TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY).build(); final WindowState magWindow = newWindowBuilder("magWindow", Loading @@ -352,7 +352,7 @@ public class WindowStateTests extends WindowTestsBase { @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndSettingsEnabled_typeIsIme_shouldMagnify() { public void testMagnifyIme_flagOnAndSettingsEnabled_typeIsIme_shouldMagnify() { final ContentResolver cr = useFakeSettingsProvider(); Settings.Secure.putInt(cr, Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MAGNIFY_NAV_AND_IME, 1); Loading @@ -362,22 +362,19 @@ 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(); imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); assertTrue(mWm.isMagnifyNavAndImeEnabled()); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(navWindow.shouldMagnify()); } @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndDefaultEnable_typeIsIme_shouldMagnify() { public void testMagnifyIme_flagOnAndDefaultEnable_typeIsIme_shouldMagnify() { useFakeSettingsProvider(); // This resets the Settings.Secure value. spyOn(mContext.getResources()); when(mContext.getResources().getBoolean( Loading @@ -386,24 +383,21 @@ 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(); imeWindow.setHasSurface(true); imeDialogWindow.setHasSurface(true); navWindow.setHasSurface(true); mWm.mSettingsObserver.loadSettings(); assertTrue(mWm.isMagnifyNavAndImeEnabled()); assertTrue(mWm.isMagnifyImeEnabled()); assertTrue(imeWindow.shouldMagnify()); assertTrue(imeDialogWindow.shouldMagnify()); assertTrue(navWindow.shouldMagnify()); } @Test @EnableFlags(com.android.server.accessibility .Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME) public void testMagnifyNavAndIme_flagOnAndDefaultDisable_typeIsIme_shouldNotMagnify() { public void testMagnifyIme_flagOnAndDefaultDisable_typeIsIme_shouldNotMagnify() { useFakeSettingsProvider(); // This resets the Settings.Secure value. spyOn(mContext.getResources()); when(mContext.getResources().getBoolean( Loading @@ -420,7 +414,7 @@ public class WindowStateTests extends WindowTestsBase { mWm.mSettingsObserver.loadSettings(); assertFalse(mWm.isMagnifyNavAndImeEnabled()); assertFalse(mWm.isMagnifyImeEnabled()); assertFalse(imeWindow.shouldMagnify()); assertFalse(imeDialogWindow.shouldMagnify()); assertFalse(navWindow.shouldMagnify()); Loading