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

Commit 887a8ffd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "fix(non linear font scaling): restore font scale to default instead of...

Merge "fix(non linear font scaling): restore font scale to default instead of original" into udc-dev
parents c99c3030 4fbc3437
Loading
Loading
Loading
Loading
+23 −15
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ import com.android.frameworks.coretests.R;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
@@ -67,22 +66,9 @@ public class FontScaleConverterActivityTest {
    @Rule
    public TestRule compatChangeRule = new PlatformCompatChangeRule();

    private float mOriginalFontScale = Float.MIN_VALUE;

    @Before
    public void setup() {
        mOriginalFontScale = Settings.System.getFloat(
            InstrumentationRegistry.getInstrumentation().getContext().getContentResolver(),
            Settings.System.FONT_SCALE,
            Float.MIN_VALUE
        );
    }

    @After
    public void teardown() {
        if (mOriginalFontScale != Float.MIN_VALUE) {
            setSystemFontScale(mOriginalFontScale);
        }
        restoreSystemFontScaleToDefault();
    }

    @IwTest(focusArea = "accessibility")
@@ -160,6 +146,28 @@ public class FontScaleConverterActivityTest {
        );
    }

    private static void restoreSystemFontScaleToDefault() {
        ShellIdentityUtils.invokeWithShellPermissions(() -> {
            // TODO(b/279083734): would use Settings.System.resetToDefaults() if it existed
            Settings.System.putString(
                    InstrumentationRegistry.getInstrumentation()
                            .getContext()
                            .getContentResolver(),
                    Settings.System.FONT_SCALE,
                    null,
                    /* overrideableByRestore= */ true);
        });

        PollingCheck.waitFor(
                /* timeout= */ 5000,
                () -> InstrumentationRegistry.getInstrumentation()
                                        .getContext()
                                        .getResources()
                                        .getConfiguration()
                                        .fontScale == 1
        );
    }

    private Matcher<View> withTextSizeInRange(float sizeStartPx, float sizeEndPx) {
        return new BoundedMatcher<>(TextView.class) {
            private static final float TOLERANCE = 0.05f;