Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ea736bd authored by Daniel Norman's avatar Daniel Norman
Browse files

fix(magnify_ime): Fix mag toggle visibility for window-only mode

In window-only mode we want:
- Magnify keyboard invisible
- Follow typing visible

This aligns with the Settings app behavior.

Fix: 413441693
Fix: 417876117
Test: atest WindowMagnificationSettingsTest
Flag: com.android.server.accessibility.enable_magnification_magnify_nav_bar_and_ime
Change-Id: Ieef43ec488528909e77ab9b56cbedfac5813671e
parent 7529413b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -509,6 +509,10 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
                mEditButton.setVisibility(View.VISIBLE);
                mAllowDiagonalScrollingView.setVisibility(View.VISIBLE);
                mFullScreenButton.setVisibility(View.GONE);
                if (Flags.enableMagnificationMagnifyNavBarAndIme()) {
                    mMagnifyTypingView.setVisibility(View.VISIBLE);
                    mMagnifyKeyboardView.setVisibility(View.GONE);
                }
                if (selectedButtonIndex == MagnificationSize.FULLSCREEN) {
                    selectedButtonIndex =
                            windowMagnificationFrameSizePrefs.getIndexForCurrentDensity();
+29 −1
Original line number Diff line number Diff line
@@ -231,6 +231,34 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
        assertThat(fullscreenButton.getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME)
    public void showSettingPanel_fullScreenMode_showMagnifyKeyboardAndFollowTyping() {
        setupMagnificationCapabilityAndMode(
                /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
                /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
        mWindowMagnificationSettings.showSettingPanel();

        final View magnifyKeyboard = getInternalView(R.id.magnifier_keyboard_view);
        assertThat(magnifyKeyboard.getVisibility()).isEqualTo(View.VISIBLE);
        final View followTyping = getInternalView(R.id.magnifier_typing_view);
        assertThat(followTyping.getVisibility()).isEqualTo(View.VISIBLE);
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MAGNIFY_NAV_BAR_AND_IME)
    public void showSettingPanel_windowOnlyCapability_hideMagnifyKeyboard_showFollowTyping() {
        setupMagnificationCapabilityAndMode(
                /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
                /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
        mWindowMagnificationSettings.showSettingPanel();

        final View magnifyKeyboard = getInternalView(R.id.magnifier_keyboard_view);
        assertThat(magnifyKeyboard.getVisibility()).isEqualTo(View.GONE);
        final View followTyping = getInternalView(R.id.magnifier_typing_view);
        assertThat(followTyping.getVisibility()).isEqualTo(View.VISIBLE);
    }

    @Test
    public void performClick_smallSizeButton_changeMagnifierSizeSmallAndSwitchToWindowMode() {
        setupMagnificationCapabilityAndMode(
@@ -362,7 +390,7 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
        final boolean currentCheckedState = magnifyKeyboardSwitch.isChecked();

        setupMagnificationCapabilityAndMode(
                /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
                /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
                /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
        mWindowMagnificationSettings.showSettingPanel();