summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/tests/coretests/src/android/content/res/FontScaleConverterActivityTest.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/core/tests/coretests/src/android/content/res/FontScaleConverterActivityTest.java b/core/tests/coretests/src/android/content/res/FontScaleConverterActivityTest.java
index 6d99e94a3656..6e8e93a8c86b 100644
--- a/core/tests/coretests/src/android/content/res/FontScaleConverterActivityTest.java
+++ b/core/tests/coretests/src/android/content/res/FontScaleConverterActivityTest.java
@@ -50,6 +50,7 @@ import org.junit.Test;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
/**
@@ -127,7 +128,7 @@ public class FontScaleConverterActivityTest {
});
}
- private static void setSystemFontScale(float fontScale) {
+ private void setSystemFontScale(float fontScale) {
ShellIdentityUtils.invokeWithShellPermissions(() -> {
Settings.System.putFloat(
InstrumentationRegistry.getInstrumentation().getContext().getContentResolver(),
@@ -136,14 +137,22 @@ public class FontScaleConverterActivityTest {
);
});
- PollingCheck.waitFor(/* timeout= */ 5000, () ->
- InstrumentationRegistry
+ PollingCheck.waitFor(/* timeout= */ 5000, () -> {
+ AtomicBoolean isActivityAtCorrectScale = new AtomicBoolean(false);
+ rule.getScenario().onActivity(activity ->
+ isActivityAtCorrectScale.set(
+ activity.getResources()
+ .getConfiguration()
+ .fontScale == fontScale
+ )
+ );
+ return isActivityAtCorrectScale.get() && InstrumentationRegistry
.getInstrumentation()
.getContext()
.getResources()
.getConfiguration()
- .fontScale == fontScale
- );
+ .fontScale == fontScale;
+ });
}
private static void restoreSystemFontScaleToDefault() {