From e3510a82a0fbddbb71ba31a704cff7b4c09da60e Mon Sep 17 00:00:00 2001 From: Seigo Nonaka Date: Mon, 3 Jul 2023 14:25:26 +0900 Subject: Deprecate fonts.xml and add hidden font_fallback.xml Not to break the apps that reads fonts.xml and add new features to the system font customization at the same time, this CL introduces new hidden XML file font_fallback.xml which is currently a copy of the fonts.xml. The fonts.xml still exists but may not contain the latest system font settings due to compatibility problems. Application should use the public API for accessing system installed fonts which is available from API29. Bug: 281769620 Test: atest CtsGraphicsTestCases Test: atest CtsTextTestCases Change-Id: I556b5fffb0c78f0c6150b472fd240b9a546de93f Merged-In: I556b5fffb0c78f0c6150b472fd240b9a546de93f --- data/fonts/Android.bp | 5 + data/fonts/font_fallback.xml | 1626 ++++++++++++++++++++ data/fonts/fonts.mk | 1 + data/fonts/fonts.xml | 12 + .../java/android/graphics/fonts/SystemFonts.java | 15 +- .../graphics/fonts/UpdatableFontDirTest.java | 4 +- 6 files changed, 1661 insertions(+), 2 deletions(-) create mode 100644 data/fonts/font_fallback.xml diff --git a/data/fonts/Android.bp b/data/fonts/Android.bp index f90a74d939f4..3dd9ba9db1d9 100644 --- a/data/fonts/Android.bp +++ b/data/fonts/Android.bp @@ -52,3 +52,8 @@ prebuilt_etc { name: "fonts.xml", src: "fonts.xml", } + +prebuilt_etc { + name: "font_fallback.xml", + src: "font_fallback.xml", +} diff --git a/data/fonts/font_fallback.xml b/data/fonts/font_fallback.xml new file mode 100644 index 000000000000..12417362ddba --- /dev/null +++ b/data/fonts/font_fallback.xml @@ -0,0 +1,1626 @@ + + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + RobotoStatic-Regular.ttf + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + + + + + + + + + + + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + Roboto-Regular.ttf + + + + + + + + + + NotoSerif-Regular.ttf + NotoSerif-Bold.ttf + NotoSerif-Italic.ttf + NotoSerif-BoldItalic.ttf + + + + + + + + + + + + + DroidSansMono.ttf + + + + + + CutiveMono.ttf + + + + + + ComingSoon.ttf + + + + DancingScript-Regular.ttf + + + DancingScript-Regular.ttf + + + + + + CarroisGothicSC-Regular.ttf + + + + SourceSansPro-Regular.ttf + SourceSansPro-Italic.ttf + SourceSansPro-SemiBold.ttf + SourceSansPro-SemiBoldItalic.ttf + SourceSansPro-Bold.ttf + SourceSansPro-BoldItalic.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + RobotoFlex-Regular.ttf + + + + + + + + + + NotoNaskhArabic-Regular.ttf + + NotoNaskhArabic-Bold.ttf + + + + NotoNaskhArabicUI-Regular.ttf + + NotoNaskhArabicUI-Bold.ttf + + + + NotoSansEthiopic-VF.ttf + + + + NotoSansEthiopic-VF.ttf + + + + NotoSansEthiopic-VF.ttf + + + + NotoSansEthiopic-VF.ttf + + + NotoSerifEthiopic-VF.ttf + + + NotoSerifEthiopic-VF.ttf + + + NotoSerifEthiopic-VF.ttf + + + NotoSerifEthiopic-VF.ttf + + + + + + NotoSansHebrew-Regular.ttf + + NotoSansHebrew-Bold.ttf + NotoSerifHebrew-Regular.ttf + NotoSerifHebrew-Bold.ttf + + + NotoSansThai-Regular.ttf + + NotoSansThai-Bold.ttf + + NotoSerifThai-Regular.ttf + + NotoSerifThai-Bold.ttf + + + + NotoSansThaiUI-Regular.ttf + + NotoSansThaiUI-Bold.ttf + + + + NotoSansArmenian-VF.ttf + + + + NotoSansArmenian-VF.ttf + + + + NotoSansArmenian-VF.ttf + + + + NotoSansArmenian-VF.ttf + + + NotoSerifArmenian-VF.ttf + + + NotoSerifArmenian-VF.ttf + + + NotoSerifArmenian-VF.ttf + + + NotoSerifArmenian-VF.ttf + + + + + + NotoSansGeorgian-VF.ttf + + + + NotoSansGeorgian-VF.ttf + + + + NotoSansGeorgian-VF.ttf + + + + NotoSansGeorgian-VF.ttf + + + NotoSerifGeorgian-VF.ttf + + + NotoSerifGeorgian-VF.ttf + + + NotoSerifGeorgian-VF.ttf + + + NotoSerifGeorgian-VF.ttf + + + + + + NotoSansDevanagari-VF.ttf + + + + NotoSansDevanagari-VF.ttf + + + + NotoSansDevanagari-VF.ttf + + + + NotoSansDevanagari-VF.ttf + + + NotoSerifDevanagari-VF.ttf + + + NotoSerifDevanagari-VF.ttf + + + NotoSerifDevanagari-VF.ttf + + + NotoSerifDevanagari-VF.ttf + + + + + + NotoSansDevanagariUI-VF.ttf + + + + NotoSansDevanagariUI-VF.ttf + + + + NotoSansDevanagariUI-VF.ttf + + + + NotoSansDevanagariUI-VF.ttf + + + + + + + + NotoSansGujarati-Regular.ttf + + NotoSansGujarati-Bold.ttf + NotoSerifGujarati-VF.ttf + + + NotoSerifGujarati-VF.ttf + + + NotoSerifGujarati-VF.ttf + + + NotoSerifGujarati-VF.ttf + + + + + + NotoSansGujaratiUI-Regular.ttf + + NotoSansGujaratiUI-Bold.ttf + + + + NotoSansGurmukhi-VF.ttf + + + + NotoSansGurmukhi-VF.ttf + + + + NotoSansGurmukhi-VF.ttf + + + + NotoSansGurmukhi-VF.ttf + + + NotoSerifGurmukhi-VF.ttf + + + NotoSerifGurmukhi-VF.ttf + + + NotoSerifGurmukhi-VF.ttf + + + NotoSerifGurmukhi-VF.ttf + + + + + + NotoSansGurmukhiUI-VF.ttf + + + + NotoSansGurmukhiUI-VF.ttf + + + + NotoSansGurmukhiUI-VF.ttf + + + + NotoSansGurmukhiUI-VF.ttf + + + + + + NotoSansTamil-VF.ttf + + + + NotoSansTamil-VF.ttf + + + + NotoSansTamil-VF.ttf + + + + NotoSansTamil-VF.ttf + + + NotoSerifTamil-VF.ttf + + + NotoSerifTamil-VF.ttf + + + NotoSerifTamil-VF.ttf + + + NotoSerifTamil-VF.ttf + + + + + + NotoSansTamilUI-VF.ttf + + + + NotoSansTamilUI-VF.ttf + + + + NotoSansTamilUI-VF.ttf + + + + NotoSansTamilUI-VF.ttf + + + + + + NotoSansMalayalam-VF.ttf + + + + NotoSansMalayalam-VF.ttf + + + + NotoSansMalayalam-VF.ttf + + + + NotoSansMalayalam-VF.ttf + + + NotoSerifMalayalam-VF.ttf + + + NotoSerifMalayalam-VF.ttf + + + NotoSerifMalayalam-VF.ttf + + + NotoSerifMalayalam-VF.ttf + + + + + + NotoSansMalayalamUI-VF.ttf + + + + NotoSansMalayalamUI-VF.ttf + + + + NotoSansMalayalamUI-VF.ttf + + + + NotoSansMalayalamUI-VF.ttf + + + + + + NotoSansBengali-VF.ttf + + + + NotoSansBengali-VF.ttf + + + + NotoSansBengali-VF.ttf + + + + NotoSansBengali-VF.ttf + + + NotoSerifBengali-VF.ttf + + + NotoSerifBengali-VF.ttf + + + NotoSerifBengali-VF.ttf + + + NotoSerifBengali-VF.ttf + + + + + + NotoSansBengaliUI-VF.ttf + + + + NotoSansBengaliUI-VF.ttf + + + + NotoSansBengaliUI-VF.ttf + + + + NotoSansBengaliUI-VF.ttf + + + + + + NotoSansTelugu-VF.ttf + + + + NotoSansTelugu-VF.ttf + + + + NotoSansTelugu-VF.ttf + + + + NotoSansTelugu-VF.ttf + + + NotoSerifTelugu-VF.ttf + + + NotoSerifTelugu-VF.ttf + + + NotoSerifTelugu-VF.ttf + + + NotoSerifTelugu-VF.ttf + + + + + + NotoSansTeluguUI-VF.ttf + + + + NotoSansTeluguUI-VF.ttf + + + + NotoSansTeluguUI-VF.ttf + + + + NotoSansTeluguUI-VF.ttf + + + + + + NotoSansKannada-VF.ttf + + + + NotoSansKannada-VF.ttf + + + + NotoSansKannada-VF.ttf + + + + NotoSansKannada-VF.ttf + + + NotoSerifKannada-VF.ttf + + + NotoSerifKannada-VF.ttf + + + NotoSerifKannada-VF.ttf + + + NotoSerifKannada-VF.ttf + + + + + + NotoSansKannadaUI-VF.ttf + + + + NotoSansKannadaUI-VF.ttf + + + + NotoSansKannadaUI-VF.ttf + + + + NotoSansKannadaUI-VF.ttf + + + + + NotoSansOriya-Regular.ttf + + NotoSansOriya-Bold.ttf + + + + NotoSansOriyaUI-Regular.ttf + + NotoSansOriyaUI-Bold.ttf + + + + NotoSansSinhala-VF.ttf + + + + NotoSansSinhala-VF.ttf + + + + NotoSansSinhala-VF.ttf + + + + NotoSansSinhala-VF.ttf + + + NotoSerifSinhala-VF.ttf + + + NotoSerifSinhala-VF.ttf + + + NotoSerifSinhala-VF.ttf + + + NotoSerifSinhala-VF.ttf + + + + + + NotoSansSinhalaUI-VF.ttf + + + + NotoSansSinhalaUI-VF.ttf + + + + NotoSansSinhalaUI-VF.ttf + + + + NotoSansSinhalaUI-VF.ttf + + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + + NotoSansKhmer-VF.ttf + + + + NotoSerifKhmer-Regular.otf + NotoSerifKhmer-Bold.otf + + + + NotoSansKhmerUI-Regular.ttf + + NotoSansKhmerUI-Bold.ttf + + + NotoSansLao-Regular.ttf + + NotoSansLao-Bold.ttf + + NotoSerifLao-Regular.ttf + + NotoSerifLao-Bold.ttf + + + NotoSansLaoUI-Regular.ttf + + NotoSansLaoUI-Bold.ttf + + + NotoSansMyanmar-Regular.otf + NotoSansMyanmar-Medium.otf + NotoSansMyanmar-Bold.otf + NotoSerifMyanmar-Regular.otf + NotoSerifMyanmar-Bold.otf + + + NotoSansMyanmarUI-Regular.otf + NotoSansMyanmarUI-Medium.otf + NotoSansMyanmarUI-Bold.otf + + + + NotoSansThaana-Regular.ttf + + NotoSansThaana-Bold.ttf + + + NotoSansCham-Regular.ttf + + NotoSansCham-Bold.ttf + + + NotoSansAhom-Regular.otf + + + + NotoSansAdlam-VF.ttf + + + + NotoSansAdlam-VF.ttf + + + + NotoSansAdlam-VF.ttf + + + + NotoSansAdlam-VF.ttf + + + + + + NotoSansAvestan-Regular.ttf + + + + + NotoSansBalinese-Regular.ttf + + + + NotoSansBamum-Regular.ttf + + + + NotoSansBatak-Regular.ttf + + + + + NotoSansBrahmi-Regular.ttf + + + + + NotoSansBuginese-Regular.ttf + + + + NotoSansBuhid-Regular.ttf + + + + + NotoSansCanadianAboriginal-Regular.ttf + + + + + NotoSansCarian-Regular.ttf + + + + NotoSansChakma-Regular.otf + + + NotoSansCherokee-Regular.ttf + + + + NotoSansCoptic-Regular.ttf + + + + + NotoSansCuneiform-Regular.ttf + + + + + NotoSansCypriot-Regular.ttf + + + + + NotoSansDeseret-Regular.ttf + + + + + NotoSansEgyptianHieroglyphs-Regular.ttf + + + + NotoSansElbasan-Regular.otf + + + + NotoSansGlagolitic-Regular.ttf + + + + + NotoSansGothic-Regular.ttf + + + + + NotoSansHanunoo-Regular.ttf + + + + + NotoSansImperialAramaic-Regular.ttf + + + + + NotoSansInscriptionalPahlavi-Regular.ttf + + + + + NotoSansInscriptionalParthian-Regular.ttf + + + + NotoSansJavanese-Regular.otf + + + + NotoSansKaithi-Regular.ttf + + + + + NotoSansKayahLi-Regular.ttf + + + + + NotoSansKharoshthi-Regular.ttf + + + + + NotoSansLepcha-Regular.ttf + + + + NotoSansLimbu-Regular.ttf + + + + + NotoSansLinearB-Regular.ttf + + + + NotoSansLisu-Regular.ttf + + + + + NotoSansLycian-Regular.ttf + + + + + NotoSansLydian-Regular.ttf + + + + + NotoSansMandaic-Regular.ttf + + + + + NotoSansMeeteiMayek-Regular.ttf + + + + + NotoSansNewTaiLue-Regular.ttf + + + + NotoSansNKo-Regular.ttf + + + + NotoSansOgham-Regular.ttf + + + + + NotoSansOlChiki-Regular.ttf + + + + + NotoSansOldItalic-Regular.ttf + + + + + NotoSansOldPersian-Regular.ttf + + + + + NotoSansOldSouthArabian-Regular.ttf + + + + + NotoSansOldTurkic-Regular.ttf + + + + NotoSansOsage-Regular.ttf + + + + NotoSansOsmanya-Regular.ttf + + + + + NotoSansPhoenician-Regular.ttf + + + + + NotoSansRejang-Regular.ttf + + + + NotoSansRunic-Regular.ttf + + + + + NotoSansSamaritan-Regular.ttf + + + + + NotoSansSaurashtra-Regular.ttf + + + + + NotoSansShavian-Regular.ttf + + + + + NotoSansSundanese-Regular.ttf + + + + + NotoSansSylotiNagri-Regular.ttf + + + + + + NotoSansSyriacEstrangela-Regular.ttf + + + + + NotoSansSyriacEastern-Regular.ttf + + + + + NotoSansSyriacWestern-Regular.ttf + + + + + NotoSansTagalog-Regular.ttf + + + + + NotoSansTagbanwa-Regular.ttf + + + + + NotoSansTaiTham-Regular.ttf + + + + + NotoSansTaiViet-Regular.ttf + + + + + NotoSerifTibetan-VF.ttf + + + + NotoSerifTibetan-VF.ttf + + + + NotoSerifTibetan-VF.ttf + + + + NotoSerifTibetan-VF.ttf + + + + + NotoSansTifinagh-Regular.otf + + + + NotoSansUgaritic-Regular.ttf + + + + NotoSansVai-Regular.ttf + + + + NotoSansSymbols-Regular-Subsetted.ttf + + + + NotoSansCJK-Regular.ttc + + NotoSerifCJK-Regular.ttc + + + + + NotoSansCJK-Regular.ttc + + NotoSerifCJK-Regular.ttc + + + + + NotoSansCJK-Regular.ttc + + NotoSerifCJK-Regular.ttc + + + + + NotoSansCJK-Regular.ttc + + NotoSerifCJK-Regular.ttc + + + + NotoColorEmoji.ttf + + + NotoColorEmojiFlags.ttf + + + NotoSansSymbols-Regular-Subsetted2.ttf + + + + NotoSansTaiLe-Regular.ttf + + + + NotoSansYi-Regular.ttf + + + + NotoSansMongolian-Regular.ttf + + + + + NotoSansPhagsPa-Regular.ttf + + + + NotoSansAnatolianHieroglyphs-Regular.otf + + + NotoSansBassaVah-Regular.otf + + + NotoSansBhaiksuki-Regular.otf + + + NotoSansHatran-Regular.otf + + + NotoSansLinearA-Regular.otf + + + NotoSansManichaean-Regular.otf + + + NotoSansMarchen-Regular.otf + + + NotoSansMeroitic-Regular.otf + + + NotoSansMiao-Regular.otf + + + NotoSansMro-Regular.otf + + + NotoSansMultani-Regular.otf + + + NotoSansNabataean-Regular.otf + + + NotoSansNewa-Regular.otf + + + NotoSansOldNorthArabian-Regular.otf + + + NotoSansOldPermic-Regular.otf + + + NotoSansPahawhHmong-Regular.otf + + + NotoSansPalmyrene-Regular.otf + + + NotoSansPauCinHau-Regular.otf + + + NotoSansSharada-Regular.otf + + + NotoSansSoraSompeng-Regular.otf + + + NotoSansGunjalaGondi-Regular.otf + + + NotoSansHanifiRohingya-Regular.otf + + + NotoSansKhojki-Regular.otf + + + NotoSansMasaramGondi-Regular.otf + + + NotoSansWancho-Regular.otf + + + NotoSansWarangCiti-Regular.otf + + + NotoSansGrantha-Regular.ttf + + + NotoSansModi-Regular.ttf + + + NotoSerifDogra-Regular.ttf + + + + NotoSansMedefaidrin-VF.ttf + + + + NotoSansMedefaidrin-VF.ttf + + + + NotoSansMedefaidrin-VF.ttf + + + + NotoSansMedefaidrin-VF.ttf + + + + + + NotoSansSoyombo-VF.ttf + + + + NotoSansSoyombo-VF.ttf + + + + NotoSansSoyombo-VF.ttf + + + + NotoSansSoyombo-VF.ttf + + + + + + NotoSansTakri-VF.ttf + + + + NotoSansTakri-VF.ttf + + + + NotoSansTakri-VF.ttf + + + + NotoSansTakri-VF.ttf + + + + + + NotoSerifNyiakengPuachueHmong-VF.ttf + + + + NotoSerifNyiakengPuachueHmong-VF.ttf + + + + NotoSerifNyiakengPuachueHmong-VF.ttf + + + + NotoSerifNyiakengPuachueHmong-VF.ttf + + + + + + NotoSerifYezidi-VF.ttf + + + + NotoSerifYezidi-VF.ttf + + + + NotoSerifYezidi-VF.ttf + + + + NotoSerifYezidi-VF.ttf + + + + diff --git a/data/fonts/fonts.mk b/data/fonts/fonts.mk index e884f2fe4bbb..5d1cc666efa4 100644 --- a/data/fonts/fonts.mk +++ b/data/fonts/fonts.mk @@ -17,4 +17,5 @@ PRODUCT_PACKAGES := \ DroidSansMono.ttf \ AndroidClock.ttf \ + font_fallback.xml \ fonts.xml diff --git a/data/fonts/fonts.xml b/data/fonts/fonts.xml index ab323adf997c..34656277470f 100644 --- a/data/fonts/fonts.xml +++ b/data/fonts/fonts.xml @@ -1,5 +1,17 @@