diff --git a/README.md b/README.md index f107fd78..4930bd43 100644 --- a/README.md +++ b/README.md @@ -66,12 +66,6 @@ const FONT_FAMILY_MONOSPACE = Platform.select({ default: 'monospace', }); -const FONT_FAMILY_EMOJI = Platform.select({ - ios: 'Apple Color Emoji', - android: 'Noto Color Emoji', - default: 'Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji', -}); - const markdownStyle: MarkdownStyle = { syntax: { color: 'gray', @@ -84,7 +78,6 @@ const markdownStyle: MarkdownStyle = { }, emoji: { fontSize: 20, - fontFamily: FONT_FAMILY_EMOJI, }, blockquote: { borderColor: 'gray', diff --git a/android/src/main/java/com/expensify/livemarkdown/MarkdownFormatter.java b/android/src/main/java/com/expensify/livemarkdown/MarkdownFormatter.java index 78b554cd..2ef8ccf9 100644 --- a/android/src/main/java/com/expensify/livemarkdown/MarkdownFormatter.java +++ b/android/src/main/java/com/expensify/livemarkdown/MarkdownFormatter.java @@ -70,8 +70,7 @@ private void applyRange(@NonNull SpannableStringBuilder ssb, @NonNull MarkdownRa setSpan(ssb, new MarkdownStrikethroughSpan(), start, end); break; case "emoji": - setSpan(ssb, new MarkdownFontFamilySpan(markdownStyle.getEmojiFontFamily(), mAssetManager), start, end); - setSpan(ssb, new MarkdownFontSizeSpan(markdownStyle.getEmojiFontSize()), start, end); + setSpan(ssb, new MarkdownEmojiSpan(markdownStyle.getEmojiFontSize()), start, end); break; case "mention-here": setSpan(ssb, new MarkdownForegroundColorSpan(markdownStyle.getMentionHereColor()), start, end); diff --git a/android/src/main/java/com/expensify/livemarkdown/MarkdownStyle.java b/android/src/main/java/com/expensify/livemarkdown/MarkdownStyle.java index ca71e51c..50606f98 100644 --- a/android/src/main/java/com/expensify/livemarkdown/MarkdownStyle.java +++ b/android/src/main/java/com/expensify/livemarkdown/MarkdownStyle.java @@ -21,9 +21,6 @@ public class MarkdownStyle { private final float mH1FontSize; - @NonNull - private final String mEmojiFontFamily; - private final float mEmojiFontSize; @ColorInt @@ -80,7 +77,6 @@ public MarkdownStyle(@NonNull ReadableMap map, @NonNull Context context) { mLinkColor = parseColor(map, "link", "color", context); mH1FontSize = parseFloat(map, "h1", "fontSize"); mEmojiFontSize = parseFloat(map, "emoji", "fontSize"); - mEmojiFontFamily = parseString(map, "emoji", "fontFamily"); mBlockquoteBorderColor = parseColor(map, "blockquote", "borderColor", context); mBlockquoteBorderWidth = parseFloat(map, "blockquote", "borderWidth"); mBlockquoteMarginLeft = parseFloat(map, "blockquote", "marginLeft"); @@ -146,10 +142,6 @@ public float getEmojiFontSize() { return mEmojiFontSize; } - public String getEmojiFontFamily() { - return mEmojiFontFamily; - } - @ColorInt public int getBlockquoteBorderColor() { return mBlockquoteBorderColor; diff --git a/android/src/main/java/com/expensify/livemarkdown/spans/MarkdownEmojiSpan.java b/android/src/main/java/com/expensify/livemarkdown/spans/MarkdownEmojiSpan.java new file mode 100644 index 00000000..e6654327 --- /dev/null +++ b/android/src/main/java/com/expensify/livemarkdown/spans/MarkdownEmojiSpan.java @@ -0,0 +1,11 @@ +package com.expensify.livemarkdown.spans; + +import android.text.style.AbsoluteSizeSpan; + +import com.facebook.react.uimanager.PixelUtil; + +public class MarkdownEmojiSpan extends AbsoluteSizeSpan implements MarkdownSpan { + public MarkdownEmojiSpan(float fontSize) { + super((int) PixelUtil.toPixelFromDIP(fontSize), false); + } +} diff --git a/apple/MarkdownFormatter.mm b/apple/MarkdownFormatter.mm index b47c4ac7..ab4443e9 100644 --- a/apple/MarkdownFormatter.mm +++ b/apple/MarkdownFormatter.mm @@ -72,7 +72,7 @@ - (void)applyRangeToAttributedString:(NSMutableAttributedString *)attributedStri variant:nil scaleMultiplier:0]; } else if (type == "emoji") { - font = [RCTFont updateFont:font withFamily:markdownStyle.emojiFontFamily + font = [RCTFont updateFont:font withFamily:nil size:[NSNumber numberWithFloat:markdownStyle.emojiFontSize] weight:nil style:nil diff --git a/apple/RCTMarkdownStyle.h b/apple/RCTMarkdownStyle.h index fd88fcaf..2e3e9fad 100644 --- a/apple/RCTMarkdownStyle.h +++ b/apple/RCTMarkdownStyle.h @@ -10,7 +10,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic) UIColor *linkColor; @property (nonatomic) CGFloat h1FontSize; @property (nonatomic) CGFloat emojiFontSize; -@property (nonatomic) NSString *emojiFontFamily; @property (nonatomic) UIColor *blockquoteBorderColor; @property (nonatomic) CGFloat blockquoteBorderWidth; @property (nonatomic) CGFloat blockquoteMarginLeft; diff --git a/apple/RCTMarkdownStyle.mm b/apple/RCTMarkdownStyle.mm index f56f01ae..42f647cb 100644 --- a/apple/RCTMarkdownStyle.mm +++ b/apple/RCTMarkdownStyle.mm @@ -14,7 +14,6 @@ - (instancetype)initWithStruct:(const facebook::react::MarkdownTextInputDecorato _h1FontSize = style.h1.fontSize; _emojiFontSize = style.emoji.fontSize; - _emojiFontFamily = RCTNSStringFromString(style.emoji.fontFamily); _blockquoteBorderColor = RCTUIColorFromSharedColor(style.blockquote.borderColor); _blockquoteBorderWidth = style.blockquote.borderWidth; diff --git a/src/MarkdownTextInputDecoratorViewNativeComponent.ts b/src/MarkdownTextInputDecoratorViewNativeComponent.ts index 5f8a827b..73d46cb5 100644 --- a/src/MarkdownTextInputDecoratorViewNativeComponent.ts +++ b/src/MarkdownTextInputDecoratorViewNativeComponent.ts @@ -9,7 +9,6 @@ interface MarkdownStyle { }; emoji: { fontSize: Float; - fontFamily: string; }; link: { color: ColorValue; diff --git a/src/styleUtils.ts b/src/styleUtils.ts index 0592c75c..47cfa529 100644 --- a/src/styleUtils.ts +++ b/src/styleUtils.ts @@ -10,12 +10,6 @@ const FONT_FAMILY_MONOSPACE = Platform.select({ default: 'monospace', }); -const FONT_FAMILY_EMOJI = Platform.select({ - ios: 'Apple Color Emoji', - android: 'Noto Color Emoji', - default: 'Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji', -}); - function makeDefaultMarkdownStyle(): MarkdownStyle { return { syntax: { @@ -29,7 +23,6 @@ function makeDefaultMarkdownStyle(): MarkdownStyle { }, emoji: { fontSize: 20, - fontFamily: FONT_FAMILY_EMOJI, }, blockquote: { borderColor: 'gray',