diff options
| author | 2018-11-07 09:01:42 +0000 | |
|---|---|---|
| committer | 2018-11-07 09:01:42 +0000 | |
| commit | e6bded0d4a0760747d13a362dcc2d684d133db67 (patch) | |
| tree | fe694d228c8c518a62e888179927d5d613692820 | |
| parent | fbf34f6d244cb0f02fffbe2f0dfd0a4507a3407b (diff) | |
| parent | f69e7037bad4c8108ef2ce2805fb874e03b6dec9 (diff) | |
Merge "Pass custom fallback info to minikin"
| -rw-r--r-- | core/jni/android/graphics/FontFamily.cpp | 3 | ||||
| -rw-r--r-- | core/jni/android/graphics/fonts/FontFamily.cpp | 7 | ||||
| -rw-r--r-- | graphics/java/android/graphics/fonts/FontFamily.java | 10 | ||||
| -rw-r--r-- | graphics/java/android/graphics/fonts/SystemFonts.java | 2 |
4 files changed, 13 insertions, 9 deletions
diff --git a/core/jni/android/graphics/FontFamily.cpp b/core/jni/android/graphics/FontFamily.cpp index e07a20880b94..2e7501f0e0be 100644 --- a/core/jni/android/graphics/FontFamily.cpp +++ b/core/jni/android/graphics/FontFamily.cpp @@ -83,7 +83,8 @@ static jlong FontFamily_create(jlong builderPtr) { return 0; } std::shared_ptr<minikin::FontFamily> family = std::make_shared<minikin::FontFamily>( - builder->langId, builder->variant, std::move(builder->fonts)); + builder->langId, builder->variant, std::move(builder->fonts), + true /* isCustomFallback */); if (family->getCoverage().length() == 0) { return 0; } diff --git a/core/jni/android/graphics/fonts/FontFamily.cpp b/core/jni/android/graphics/fonts/FontFamily.cpp index 767e068381d9..249e4f3e9212 100644 --- a/core/jni/android/graphics/fonts/FontFamily.cpp +++ b/core/jni/android/graphics/fonts/FontFamily.cpp @@ -57,7 +57,7 @@ static void FontFamily_Builder_addFont(jlong builderPtr, jlong fontPtr) { // Regular JNI static jlong FontFamily_Builder_build(JNIEnv* env, jobject clazz, jlong builderPtr, - jstring langTags, jint variant) { + jstring langTags, jint variant, jboolean isCustomFallback) { std::unique_ptr<NativeFamilyBuilder> builder(toBuilder(builderPtr)); uint32_t localeId; if (langTags == nullptr) { @@ -67,7 +67,8 @@ static jlong FontFamily_Builder_build(JNIEnv* env, jobject clazz, jlong builderP localeId = minikin::registerLocaleList(str.c_str()); } std::shared_ptr<minikin::FontFamily> family = std::make_shared<minikin::FontFamily>( - localeId, static_cast<minikin::FamilyVariant>(variant), std::move(builder->fonts)); + localeId, static_cast<minikin::FamilyVariant>(variant), std::move(builder->fonts), + isCustomFallback); if (family->getCoverage().length() == 0) { // No coverage means minikin rejected given font for some reasons. jniThrowException(env, "java/lang/IllegalArgumentException", @@ -87,7 +88,7 @@ static jlong FontFamily_Builder_GetReleaseFunc() { static const JNINativeMethod gFontFamilyBuilderMethods[] = { { "nInitBuilder", "()J", (void*) FontFamily_Builder_initBuilder }, { "nAddFont", "(JJ)V", (void*) FontFamily_Builder_addFont }, - { "nBuild", "(JLjava/lang/String;I)J", (void*) FontFamily_Builder_build }, + { "nBuild", "(JLjava/lang/String;IZ)J", (void*) FontFamily_Builder_build }, { "nGetReleaseNativeFamily", "()J", (void*) FontFamily_Builder_GetReleaseFunc }, }; diff --git a/graphics/java/android/graphics/fonts/FontFamily.java b/graphics/java/android/graphics/fonts/FontFamily.java index 14d31d9dfd86..c0f1b163ea11 100644 --- a/graphics/java/android/graphics/fonts/FontFamily.java +++ b/graphics/java/android/graphics/fonts/FontFamily.java @@ -108,16 +108,17 @@ public final class FontFamily { * @return a font family */ public @NonNull FontFamily build() { - return build("", FontConfig.Family.VARIANT_DEFAULT); + return build("", FontConfig.Family.VARIANT_DEFAULT, true /* isCustomFallback */); } /** @hide */ - public @NonNull FontFamily build(@NonNull String langTags, int variant) { + public @NonNull FontFamily build(@NonNull String langTags, int variant, + boolean isCustomFallback) { final long builderPtr = nInitBuilder(); for (int i = 0; i < mFonts.size(); ++i) { nAddFont(builderPtr, mFonts.get(i).getNativePtr()); } - final long ptr = nBuild(builderPtr, langTags, variant); + final long ptr = nBuild(builderPtr, langTags, variant, isCustomFallback); final FontFamily family = new FontFamily(mFonts, ptr); sFamilyRegistory.registerNativeAllocation(family, ptr); return family; @@ -130,7 +131,8 @@ public final class FontFamily { private static native long nInitBuilder(); @CriticalNative private static native void nAddFont(long builderPtr, long fontPtr); - private static native long nBuild(long builderPtr, String langTags, int variant); + private static native long nBuild(long builderPtr, String langTags, int variant, + boolean isCustomFallback); @CriticalNative private static native long nGetReleaseNativeFamily(); } diff --git a/graphics/java/android/graphics/fonts/SystemFonts.java b/graphics/java/android/graphics/fonts/SystemFonts.java index 750adb2757c8..4a9cf14d04a5 100644 --- a/graphics/java/android/graphics/fonts/SystemFonts.java +++ b/graphics/java/android/graphics/fonts/SystemFonts.java @@ -208,7 +208,7 @@ public final class SystemFonts { b.addFont(font); } } - return b == null ? null : b.build(languageTags, variant); + return b == null ? null : b.build(languageTags, variant, false /* isCustomFallback */); } private static void appendNamedFamily(@NonNull FontConfig.Family xmlFamily, |