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

Commit 254ecbdb authored by mincheli's avatar mincheli Committed by Minche Li
Browse files

Makes only one activated magnifier on the display when the controlling...

Makes only one activated magnifier on the display when the controlling magnifion magnifier transitions mode

To make only one activated magnification mode
show on the display.
When fullscreen magnifier is turned to be activated on
the display. MagnificationController will disable the
window magnifier if it is enabled.

Bug: 206820500
Test: atest MagnificationControllerTest
Change-Id: I465e7293b4262d3cf8caf9873ea772aba50f1d6d
parent 53d887fe
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -357,6 +357,7 @@ public class MagnificationController implements WindowMagnificationManager.Callb
                mLastActivatedMode = mActivatedMode;
            }
            logMagnificationModeWithImeOnIfNeeded();
            disableWindowMagnificationIfNeeded(displayId);
        } else {
            logMagnificationUsageState(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN,
                    SystemClock.uptimeMillis() - mFullScreenModeEnabledTime);
@@ -368,6 +369,14 @@ public class MagnificationController implements WindowMagnificationManager.Callb
        updateMagnificationButton(displayId, ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN);
    }

    private void disableWindowMagnificationIfNeeded(int displayId) {
        final WindowMagnificationManager windowMagnificationManager =
                getWindowMagnificationMgr();
        if (isActivated(displayId, ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW)) {
            windowMagnificationManager.disableWindowMagnification(displayId, false);
        }
    }

    @Override
    public void onImeWindowVisibilityChanged(boolean shown) {
        synchronized (mLock) {
+10 −0
Original line number Diff line number Diff line
@@ -469,6 +469,16 @@ public class MagnificationControllerTest {
                eq(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN), anyLong());
    }

    @Test
    public void onFullScreenMagnificationActivationState_windowActivated_disableMagnification()
            throws RemoteException {
        setMagnificationEnabled(MODE_WINDOW);

        mMagnificationController.onFullScreenMagnificationActivationState(TEST_DISPLAY, true);

        verify(mWindowMagnificationManager).disableWindowMagnification(eq(TEST_DISPLAY), eq(false));
    }

    @Test
    public void onTouchInteractionStart_fullScreenAndCapabilitiesAll_showMagnificationButton()
            throws RemoteException {