Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions ReactAndroid/src/main/java/com/facebook/react/flat/RCTText.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
private float mSpacingAdd = 0.0f;
private int mNumberOfLines = Integer.MAX_VALUE;
private int mAlignment = Gravity.NO_GRAVITY;
private boolean mIncludeFontPadding = true;

public RCTText() {
setMeasureFunction(this);
Expand Down Expand Up @@ -94,7 +95,7 @@ public long measure(
(int) Math.ceil(width),
widthMode,
TextUtils.TruncateAt.END,
true,
mIncludeFontPadding,
mNumberOfLines,
mNumberOfLines == 1,
text,
Expand Down Expand Up @@ -158,7 +159,7 @@ protected void collectState(
(int) Math.ceil(right - left),
YogaMeasureMode.EXACTLY,
TextUtils.TruncateAt.END,
true,
mIncludeFontPadding,
mNumberOfLines,
mNumberOfLines == 1,
mText,
Expand Down Expand Up @@ -223,6 +224,11 @@ public void setNumberOfLines(int numberOfLines) {
notifyChanged(true);
}

@ReactProp(name = ViewProps.INCLUDE_FONT_PADDING, defaultBoolean = true)
public void setIncludeFontPadding(boolean includepad) {
mIncludeFontPadding = includepad;
}

@Override
/* package */ void updateNodeRegion(
float left,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ public class ViewProps {
public static final String TEXT_BREAK_STRATEGY = "textBreakStrategy";

public static final String ALLOW_FONT_SCALING = "allowFontScaling";
public static final String INCLUDE_FONT_PADDING = "includeFontPadding";

public static final String BORDER_WIDTH = "borderWidth";
public static final String BORDER_LEFT_WIDTH = "borderLeftWidth";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,12 +258,12 @@ public long measure(
Layout.Alignment.ALIGN_NORMAL,
1.f,
0.f,
true);
mIncludeFontPadding);
} else {
layout = StaticLayout.Builder.obtain(text, 0, text.length(), textPaint, hintWidth)
.setAlignment(Layout.Alignment.ALIGN_NORMAL)
.setLineSpacing(0.f, 1.f)
.setIncludePad(true)
.setIncludePad(mIncludeFontPadding)
.setBreakStrategy(mTextBreakStrategy)
.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL)
.build();
Expand All @@ -280,7 +280,7 @@ public long measure(
1.f,
0.f,
boring,
true);
mIncludeFontPadding);
} else {
// Is used for multiline, boring text and the width is known.

Expand All @@ -292,12 +292,12 @@ public long measure(
Layout.Alignment.ALIGN_NORMAL,
1.f,
0.f,
true);
mIncludeFontPadding);
} else {
layout = StaticLayout.Builder.obtain(text, 0, text.length(), textPaint, (int) width)
.setAlignment(Layout.Alignment.ALIGN_NORMAL)
.setLineSpacing(0.f, 1.f)
.setIncludePad(true)
.setIncludePad(mIncludeFontPadding)
.setBreakStrategy(mTextBreakStrategy)
.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NORMAL)
.build();
Expand Down Expand Up @@ -351,6 +351,7 @@ private static int parseNumericFontWeight(String fontWeightString) {

private boolean mIsUnderlineTextDecorationSet = false;
private boolean mIsLineThroughTextDecorationSet = false;
private boolean mIncludeFontPadding = true;

/**
* mFontStyle can be {@link Typeface#NORMAL} or {@link Typeface#ITALIC}.
Expand Down Expand Up @@ -559,6 +560,11 @@ public void setFontStyle(@Nullable String fontStyleString) {
}
}

@ReactProp(name = ViewProps.INCLUDE_FONT_PADDING, defaultBoolean = true)
public void setIncludeFontPadding(boolean includepad) {
mIncludeFontPadding = includepad;
}

@ReactProp(name = ViewProps.TEXT_DECORATION_LINE)
public void setTextDecorationLine(@Nullable String textDecorationLineString) {
mIsUnderlineTextDecorationSet = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ public void setBorderColor(ReactTextView view, int index, Integer color) {
view.setBorderColor(SPACING_TYPES[index], rgbComponent, alphaComponent);
}

@ReactProp(name = "includeFontPadding", defaultBoolean = true)
@ReactProp(name = ViewProps.INCLUDE_FONT_PADDING, defaultBoolean = true)
public void setIncludeFontPadding(ReactTextView view, boolean includepad) {
view.setIncludeFontPadding(includepad);
}
Expand Down