Loading core/java/android/text/flags/flags.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -160,3 +160,14 @@ flag { description: "Feature flag for showing error message when user tries stylus handwriting on a text field which doesn't support it" bug: "297962571" } flag { name: "fix_font_update_failure" namespace: "text" description: "There was a bug of updating system font from Android 13 to 14. This flag for fixing the migration failure." is_fixed_read_only: true bug: "331717791" metadata { purpose: PURPOSE_BUGFIX } } services/core/java/com/android/server/graphics/fonts/UpdatableFontDir.java +37 −24 Original line number Diff line number Diff line Loading @@ -196,7 +196,12 @@ final class UpdatableFontDir { File signatureFile = new File(dir, FONT_SIGNATURE_FILE); if (!signatureFile.exists()) { Slog.i(TAG, "The signature file is missing."); if (com.android.text.flags.Flags.fixFontUpdateFailure()) { return; } else { FileUtils.deleteContentsAndDir(dir); continue; } } byte[] signature; try { Loading @@ -221,12 +226,17 @@ final class UpdatableFontDir { FontFileInfo fontFileInfo = validateFontFile(fontFile, signature); if (fontConfig == null) { if (com.android.text.flags.Flags.fixFontUpdateFailure()) { // Use preinstalled font config for checking revision number. fontConfig = mConfigSupplier.apply(Collections.emptyMap()); } else { fontConfig = getSystemFontConfig(); } } addFileToMapIfSameOrNewer(fontFileInfo, fontConfig, true /* deleteOldFile */); } if (com.android.text.flags.Flags.fixFontUpdateFailure()) { // Treat as error if post script name of font family was not installed. for (int i = 0; i < config.fontFamilies.size(); ++i) { FontUpdateRequest.Family family = config.fontFamilies.get(i); Loading @@ -250,6 +260,7 @@ final class UpdatableFontDir { return; } } } success = true; } catch (Throwable t) { Loading @@ -262,10 +273,12 @@ final class UpdatableFontDir { mFontFileInfoMap.clear(); mLastModifiedMillis = 0; FileUtils.deleteContents(mFilesDir); if (com.android.text.flags.Flags.fixFontUpdateFailure()) { mConfigFile.delete(); } } } } /** * Applies multiple {@link FontUpdateRequest}s in transaction. Loading services/tests/servicestests/src/com/android/server/graphics/fonts/UpdatableFontDirTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ import android.graphics.fonts.SystemFonts; import android.os.FileUtils; import android.os.ParcelFileDescriptor; import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.RequiresFlagsEnabled; import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.system.Os; import android.text.FontConfig; import android.util.Xml; Loading @@ -38,8 +41,11 @@ import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.text.flags.Flags; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.xmlpull.v1.XmlPullParser; Loading Loading @@ -69,6 +75,9 @@ public final class UpdatableFontDirTest { private static final String LEGACY_FONTS_XML = "/system/etc/fonts.xml"; @Rule public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); /** * A {@link UpdatableFontDir.FontFileParser} for testing. Instead of using real font files, * this test uses fake font files. A fake font file has its PostScript naem and revision as the Loading Loading @@ -1097,6 +1106,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1116,6 +1126,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1); Loading @@ -1135,6 +1146,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1154,6 +1166,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1173,6 +1186,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1192,6 +1206,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1211,6 +1226,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1230,6 +1246,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1249,6 +1266,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1268,6 +1286,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1); Loading @@ -1287,6 +1306,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1306,6 +1326,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1325,6 +1346,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1344,6 +1366,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1363,6 +1386,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1382,6 +1406,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1401,6 +1426,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1420,6 +1446,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1439,6 +1466,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1458,6 +1486,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1477,6 +1506,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1497,6 +1527,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1517,6 +1548,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1537,6 +1569,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading Loading
core/java/android/text/flags/flags.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -160,3 +160,14 @@ flag { description: "Feature flag for showing error message when user tries stylus handwriting on a text field which doesn't support it" bug: "297962571" } flag { name: "fix_font_update_failure" namespace: "text" description: "There was a bug of updating system font from Android 13 to 14. This flag for fixing the migration failure." is_fixed_read_only: true bug: "331717791" metadata { purpose: PURPOSE_BUGFIX } }
services/core/java/com/android/server/graphics/fonts/UpdatableFontDir.java +37 −24 Original line number Diff line number Diff line Loading @@ -196,7 +196,12 @@ final class UpdatableFontDir { File signatureFile = new File(dir, FONT_SIGNATURE_FILE); if (!signatureFile.exists()) { Slog.i(TAG, "The signature file is missing."); if (com.android.text.flags.Flags.fixFontUpdateFailure()) { return; } else { FileUtils.deleteContentsAndDir(dir); continue; } } byte[] signature; try { Loading @@ -221,12 +226,17 @@ final class UpdatableFontDir { FontFileInfo fontFileInfo = validateFontFile(fontFile, signature); if (fontConfig == null) { if (com.android.text.flags.Flags.fixFontUpdateFailure()) { // Use preinstalled font config for checking revision number. fontConfig = mConfigSupplier.apply(Collections.emptyMap()); } else { fontConfig = getSystemFontConfig(); } } addFileToMapIfSameOrNewer(fontFileInfo, fontConfig, true /* deleteOldFile */); } if (com.android.text.flags.Flags.fixFontUpdateFailure()) { // Treat as error if post script name of font family was not installed. for (int i = 0; i < config.fontFamilies.size(); ++i) { FontUpdateRequest.Family family = config.fontFamilies.get(i); Loading @@ -250,6 +260,7 @@ final class UpdatableFontDir { return; } } } success = true; } catch (Throwable t) { Loading @@ -262,10 +273,12 @@ final class UpdatableFontDir { mFontFileInfoMap.clear(); mLastModifiedMillis = 0; FileUtils.deleteContents(mFilesDir); if (com.android.text.flags.Flags.fixFontUpdateFailure()) { mConfigFile.delete(); } } } } /** * Applies multiple {@link FontUpdateRequest}s in transaction. Loading
services/tests/servicestests/src/com/android/server/graphics/fonts/UpdatableFontDirTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ import android.graphics.fonts.SystemFonts; import android.os.FileUtils; import android.os.ParcelFileDescriptor; import android.platform.test.annotations.Presubmit; import android.platform.test.annotations.RequiresFlagsEnabled; import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.system.Os; import android.text.FontConfig; import android.util.Xml; Loading @@ -38,8 +41,11 @@ import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.text.flags.Flags; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.xmlpull.v1.XmlPullParser; Loading Loading @@ -69,6 +75,9 @@ public final class UpdatableFontDirTest { private static final String LEGACY_FONTS_XML = "/system/etc/fonts.xml"; @Rule public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); /** * A {@link UpdatableFontDir.FontFileParser} for testing. Instead of using real font files, * this test uses fake font files. A fake font file has its PostScript naem and revision as the Loading Loading @@ -1097,6 +1106,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1116,6 +1126,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1); Loading @@ -1135,6 +1146,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1154,6 +1166,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1173,6 +1186,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1192,6 +1206,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1211,6 +1226,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1230,6 +1246,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void signatureAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1249,6 +1266,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1268,6 +1286,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1); Loading @@ -1287,6 +1306,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1306,6 +1326,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf and bar.ttf installTestFontFile(2 /* numFonts */, 1 /* version */); Loading @@ -1325,6 +1346,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1344,6 +1366,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1363,6 +1386,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1382,6 +1406,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1401,6 +1426,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1420,6 +1446,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1439,6 +1466,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1458,6 +1486,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void fontDirAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1477,6 +1506,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFamilyInstalled_fontFamilyInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1497,6 +1527,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFamilyInstalled_fontInstallLater() { // Install font families, foo.ttf, bar.ttf. installTestFontFamilies(1 /* version */); Loading @@ -1517,6 +1548,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFileInstalled_fontFamilyInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading @@ -1537,6 +1569,7 @@ public final class UpdatableFontDirTest { } @Test @RequiresFlagsEnabled(Flags.FLAG_FIX_FONT_UPDATE_FAILURE) public void dirContentAllMissingCase_fontFileInstalled_fontFileInstallLater() { // Install font file, foo.ttf installTestFontFile(1 /* numFonts */, 1 /* version */); Loading