From fd6386a07eb75a8ec16b1384a3e5827dea520b64 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Tue, 7 May 2019 18:41:23 -0700 Subject: [PATCH] custom fonts support The Android Way (#24595) Summary: In https://github.com/facebook/react-native/pull/23865, RN introduced support for custom fonts the Android Way. But it introduced performance regression because it'll lookup for a font using getIdentifier() every time fontFamily changed. This PR fixes regression by requiring custom fonts to be listed in **fonts** array, and populating **mTypeCache** at first use using the list. [Android] [Changed] - Require custom fonts to list in **fonts** array. Fixes performance regression. Pull Request resolved: https://github.com/facebook/react-native/pull/24595 Reviewed By: mdvacca Differential Revision: D15184590 Pulled By: fkgozali fbshipit-source-id: e3feb2396609583ebc95101130186a1f5af931da --- .../react/uiapp/RNTesterActivity.java | 1 - .../react/uiapp/RNTesterApplication.java | 11 ++++-- .../app/src/main/res/font/srisakdi.xml | 5 +++ .../app/src/main/res/font/srisakdi_bold.ttf | Bin 0 -> 96880 bytes .../src/main/res/font/srisakdi_regular.ttf | Bin 0 -> 97012 bytes RNTester/js/TextExample.android.js | 8 ++++ .../react/views/text/CustomStyleSpan.java | 10 ++--- .../react/views/text/ReactFontManager.java | 35 +++++++++++++++--- 8 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 RNTester/android/app/src/main/res/font/srisakdi.xml create mode 100755 RNTester/android/app/src/main/res/font/srisakdi_bold.ttf create mode 100755 RNTester/android/app/src/main/res/font/srisakdi_regular.ttf diff --git a/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java b/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java index e7a6e8219d..8a90535223 100644 --- a/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java +++ b/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java @@ -8,7 +8,6 @@ package com.facebook.react.uiapp; -import android.app.Activity; import android.os.Bundle; import com.facebook.react.ReactActivity; diff --git a/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.java b/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.java index 3e58370518..b003fb1d3a 100644 --- a/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.java +++ b/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.java @@ -15,12 +15,11 @@ import com.facebook.react.ReactApplication; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage; +import com.facebook.react.views.text.ReactFontManager; import java.util.Arrays; import java.util.List; -import javax.annotation.Nullable; - public class RNTesterApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @Override @@ -29,7 +28,7 @@ public class RNTesterApplication extends Application implements ReactApplication } @Override - public @Nullable String getBundleAssetName() { + public String getBundleAssetName() { return "RNTesterApp.android.bundle"; } @@ -46,6 +45,12 @@ public class RNTesterApplication extends Application implements ReactApplication } }; + @Override + public void onCreate() { + ReactFontManager.getInstance().addCustomFont(this, "Srisakdi", R.font.srisakdi); + super.onCreate(); + } + @Override public ReactNativeHost getReactNativeHost() { return mReactNativeHost; diff --git a/RNTester/android/app/src/main/res/font/srisakdi.xml b/RNTester/android/app/src/main/res/font/srisakdi.xml new file mode 100644 index 0000000000..c38d8f34a0 --- /dev/null +++ b/RNTester/android/app/src/main/res/font/srisakdi.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/RNTester/android/app/src/main/res/font/srisakdi_bold.ttf b/RNTester/android/app/src/main/res/font/srisakdi_bold.ttf new file mode 100755 index 0000000000000000000000000000000000000000..01a5bcb5d30f2331313e347d471d48384794655a GIT binary patch literal 96880 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 literal 0 HcmV?d00001 diff --git a/RNTester/android/app/src/main/res/font/srisakdi_regular.ttf b/RNTester/android/app/src/main/res/font/srisakdi_regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..4db47aaad380e3dd961c53c71b79fdb1cfe7deac GIT binary patch literal 97012 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

XQTA2Zl5bsOX4iD7_A|{=K`~$gux?WoW)6 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 z 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 { NotoSerif Italic (Missing Font file) + Srisakdi Regular + + Srisakdi Bold + diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java index 7b5f33cc32..c3cc40afea 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/CustomStyleSpan.java @@ -7,14 +7,15 @@ package com.facebook.react.views.text; -import javax.annotation.Nullable; - import android.content.res.AssetManager; import android.graphics.Paint; import android.graphics.Typeface; import android.text.TextPaint; import android.text.style.MetricAffectingSpan; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + public class CustomStyleSpan extends MetricAffectingSpan implements ReactSpan { /** @@ -39,7 +40,7 @@ public class CustomStyleSpan extends MetricAffectingSpan implements ReactSpan { int fontStyle, int fontWeight, @Nullable String fontFamily, - AssetManager assetManager) { + @NonNull AssetManager assetManager) { mStyle = fontStyle; mWeight = fontWeight; mFontFamily = fontFamily; @@ -52,7 +53,7 @@ public class CustomStyleSpan extends MetricAffectingSpan implements ReactSpan { } @Override - public void updateMeasureState(TextPaint paint) { + public void updateMeasureState(@NonNull TextPaint paint) { apply(paint, mStyle, mWeight, mFontFamily, mAssetManager); } @@ -116,5 +117,4 @@ public class CustomStyleSpan extends MetricAffectingSpan implements ReactSpan { } paint.setSubpixelText(true); } - } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java index 41faa061a9..6601762513 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java @@ -7,15 +7,18 @@ package com.facebook.react.views.text; -import javax.annotation.Nullable; - import java.util.HashMap; import java.util.Map; +import android.content.Context; import android.content.res.AssetManager; import android.graphics.Typeface; import android.util.SparseArray; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.res.ResourcesCompat; + /** * Class responsible to load and cache Typeface objects. It will first try to load typefaces inside * the assets/fonts folder and if it doesn't find the right Typeface in that folder will fall back @@ -36,10 +39,12 @@ public class ReactFontManager { private static ReactFontManager sReactFontManagerInstance; - private Map mFontCache; + final private Map mFontCache; + final private Map mCustomTypefaceCache; private ReactFontManager() { mFontCache = new HashMap<>(); + mCustomTypefaceCache = new HashMap<>(); } public static ReactFontManager getInstance() { @@ -49,8 +54,7 @@ public class ReactFontManager { return sReactFontManagerInstance; } - public - @Nullable Typeface getTypeface( + public @Nullable Typeface getTypeface( String fontFamilyName, int style, AssetManager assetManager) { @@ -60,6 +64,13 @@ public class ReactFontManager { mFontCache.put(fontFamilyName, fontFamily); } + if(mCustomTypefaceCache.containsKey(fontFamilyName)) { + return Typeface.create( + mCustomTypefaceCache.get(fontFamilyName), + style + ); + } + Typeface typeface = fontFamily.getTypeface(style); if (typeface == null) { typeface = createTypeface(fontFamilyName, style, assetManager); @@ -71,6 +82,20 @@ public class ReactFontManager { return typeface; } + /* + * This method allows you to load custom fonts from res/font folder as provided font family name. + * Fonts may be one of .ttf, .otf or XML (https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml). + * To support multiple font styles or weights, you must provide a font in XML format. + * + * ReactFontManager.getInstance().addCustomFont(this, "Srisakdi", R.font.srisakdi); + */ + public void addCustomFont(@NonNull Context context, @NonNull String fontFamily, int fontId) { + Typeface font = ResourcesCompat.getFont(context, fontId); + if (font != null) { + mCustomTypefaceCache.put(fontFamily, font); + } + } + /** * Add additional font family, or replace the exist one in the font memory cache. * @param style