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

Commit 3a6e072c authored by Roy Chou's avatar Roy Chou
Browse files

fix(magnification panel): use the min/max scale from MagnificationConstants when testing

In WindowMagnificationSettingsTest, access the MagnificationConstants to get the magnification min/max scale so we can compute the exact number of points for the seekbar on scale.

Bug: 359468815
Flag: EXEMPT bugfix
Test: atest WindowMagnificationSettingsTest
Change-Id: Iac00c2e20d3184dfa9769f3d411f37b85f02851f
parent 16b407b9
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -22,6 +22,9 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
import static android.view.WindowInsets.Type.systemBars;

import static com.android.internal.accessibility.common.MagnificationConstants.SCALE_MAX_VALUE;
import static com.android.internal.accessibility.common.MagnificationConstants.SCALE_MIN_VALUE;

import static com.google.common.truth.Truth.assertThat;

import static junit.framework.Assert.assertEquals;
@@ -429,7 +432,7 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
        mSettingView = mWindowMagnificationSettings.getSettingView();
        mZoomSeekbar = mSettingView.findViewById(R.id.magnifier_zoom_slider);
        assertThat(mZoomSeekbar.getProgress()).isEqualTo(10);
        assertThat(mZoomSeekbar.getMax()).isEqualTo(70);
        assertThat(mZoomSeekbar.getMax()).isEqualTo(getSeekBarMax());
    }

    @Test
@@ -473,29 +476,26 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {

    @Test
    public void seekbarProgress_maxMagnificationBefore_seekbarProgressIsMax() {
        mWindowMagnificationSettings.setMagnificationScale(8f);
        mWindowMagnificationSettings.setMagnificationScale(SCALE_MAX_VALUE);
        setupMagnificationCapabilityAndMode(
                /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
                /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);

        mWindowMagnificationSettings.showSettingPanel();

        // 8.0f is max magnification {@link MagnificationScaleProvider#MAX_SCALE}.
        // Max zoom seek bar is 70.
        assertThat(mZoomSeekbar.getProgress()).isEqualTo(70);
        assertThat(mZoomSeekbar.getProgress()).isEqualTo(getSeekBarMax());
    }

    @Test
    public void seekbarProgress_aboveMaxMagnificationBefore_seekbarProgressIsMax() {
        mWindowMagnificationSettings.setMagnificationScale(9f);
        mWindowMagnificationSettings.setMagnificationScale(SCALE_MAX_VALUE + 1f);
        setupMagnificationCapabilityAndMode(
                /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
                /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);

        mWindowMagnificationSettings.showSettingPanel();

        // Max zoom seek bar is 70.
        assertThat(mZoomSeekbar.getProgress()).isEqualTo(70);
        assertThat(mZoomSeekbar.getProgress()).isEqualTo(getSeekBarMax());
    }

    @Test
@@ -589,4 +589,11 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
                anyInt(),
                eq(UserHandle.USER_CURRENT))).thenReturn(mode);
    }

    private int getSeekBarMax() {
        // Calculates the maximum index (or positions) the seekbar can have.
        // This is achieved by multiplying the range of possible scales with the magnitude of
        // change per each movement on the seekbar.
        return (int) ((SCALE_MAX_VALUE - SCALE_MIN_VALUE) * mZoomSeekbar.getChangeMagnitude());
    }
}