Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ internal object TextLayoutManager {
const val PA_KEY_INCLUDE_FONT_PADDING: Int = 4
const val PA_KEY_HYPHENATION_FREQUENCY: Int = 5
const val PA_KEY_MINIMUM_FONT_SIZE: Int = 6
const val PA_KEY_MAXIMUM_FONT_SIZE: Int = 7
const val PA_KEY_TEXT_ALIGN_VERTICAL: Int = 8
const val PA_KEY_TEXT_WIDTH_MODE: Int = 9

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ bool ParagraphAttributes::operator==(const ParagraphAttributes& rhs) const {
rhs.android_hyphenationFrequency,
rhs.textAlignVertical) &&
floatEquality(minimumFontSize, rhs.minimumFontSize) &&
floatEquality(maximumFontSize, rhs.maximumFontSize) &&
floatEquality(minimumFontScale, rhs.minimumFontScale);
}

Expand Down Expand Up @@ -64,10 +63,6 @@ SharedDebugStringConvertibleList ParagraphAttributes::getDebugProps() const {
"minimumFontSize",
minimumFontSize,
paragraphAttributes.minimumFontSize),
debugStringConvertibleItem(
"maximumFontSize",
maximumFontSize,
paragraphAttributes.maximumFontSize),
debugStringConvertibleItem(
"includeFontPadding",
includeFontPadding,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,9 @@ class ParagraphAttributes : public DebugStringConvertible {
HyphenationFrequency android_hyphenationFrequency{};

/*
* In case of font size adjustment enabled, defines minimum and maximum
* font sizes.
* In case of font size adjustment enabled, defines the minimum font size.
*/
Float minimumFontSize{std::numeric_limits<Float>::quiet_NaN()};
Float maximumFontSize{std::numeric_limits<Float>::quiet_NaN()};

/*
* Specifies the smallest possible scale a font can reach when
Expand Down Expand Up @@ -110,7 +108,6 @@ struct hash<facebook::react::ParagraphAttributes> {
attributes.textWidthMode,
attributes.adjustsFontSizeToFit,
attributes.minimumFontSize,
attributes.maximumFontSize,
attributes.includeFontPadding,
attributes.android_hyphenationFrequency,
attributes.minimumFontScale,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1091,12 +1091,6 @@ inline ParagraphAttributes convertRawProp(
"minimumFontSize",
sourceParagraphAttributes.minimumFontSize,
defaultParagraphAttributes.minimumFontSize);
paragraphAttributes.maximumFontSize = convertRawProp(
context,
rawProps,
"maximumFontSize",
sourceParagraphAttributes.maximumFontSize,
defaultParagraphAttributes.maximumFontSize);
paragraphAttributes.includeFontPadding = convertRawProp(
context,
rawProps,
Expand Down Expand Up @@ -1200,7 +1194,6 @@ constexpr static MapBuffer::Key PA_KEY_ADJUST_FONT_SIZE_TO_FIT = 3;
constexpr static MapBuffer::Key PA_KEY_INCLUDE_FONT_PADDING = 4;
constexpr static MapBuffer::Key PA_KEY_HYPHENATION_FREQUENCY = 5;
constexpr static MapBuffer::Key PA_KEY_MINIMUM_FONT_SIZE = 6;
constexpr static MapBuffer::Key PA_KEY_MAXIMUM_FONT_SIZE = 7;
constexpr static MapBuffer::Key PA_KEY_TEXT_ALIGN_VERTICAL = 8;
constexpr static MapBuffer::Key PA_KEY_TEXT_WIDTH_MODE = 9;

Expand All @@ -1218,7 +1211,6 @@ inline MapBuffer toMapBuffer(const ParagraphAttributes &paragraphAttributes)
builder.putString(PA_KEY_TEXT_ALIGN_VERTICAL, toString(*paragraphAttributes.textAlignVertical));
}
builder.putDouble(PA_KEY_MINIMUM_FONT_SIZE, paragraphAttributes.minimumFontSize);
builder.putDouble(PA_KEY_MAXIMUM_FONT_SIZE, paragraphAttributes.maximumFontSize);

return builder.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

namespace facebook::react {

// The three Float fields default to NaN, and NaN != NaN under IEEE-754.
// The two Float fields default to NaN, and NaN != NaN under IEEE-754.
// operator== must special-case NaN via floatEquality so two freshly
// default-constructed ParagraphAttributes compare equal.
TEST(
Expand All @@ -31,12 +31,10 @@ TEST(
testOperatorEqualsFloatFieldsUseEpsilonComparison) {
ParagraphAttributes a{};
a.minimumFontSize = 12.0f;
a.maximumFontSize = 48.0f;
a.minimumFontScale = 0.5f;
auto b = a;

b.minimumFontSize = a.minimumFontSize + 0.001f;
b.maximumFontSize = a.maximumFontSize + 0.001f;
b.minimumFontScale = a.minimumFontScale + 0.001f;
EXPECT_TRUE(a == b);

Expand All @@ -46,8 +44,8 @@ TEST(
}

// floatEquality returns true only when *both* operands are NaN or when
// *neither* is. A NaN-vs-finite mismatch in any of the three float fields
// must therefore make the instances unequal, even though both operands are
// *neither* is. A NaN-vs-finite mismatch in either float field must
// therefore make the instances unequal, even though both operands are
// "invalid" font sizes.
TEST(
ParagraphAttributesTest,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,6 @@ void BaseParagraphProps::setProp(
paragraphAttributes,
minimumFontSize,
"minimumFontSize");
REBUILD_FIELD_SWITCH_CASE(
paDefaults,
value,
paragraphAttributes,
maximumFontSize,
"maximumFontSize");
REBUILD_FIELD_SWITCH_CASE(
paDefaults,
value,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,12 +128,6 @@ folly::dynamic HostPlatformParagraphProps::getDiffProps(
result["minimumFontSize"] = paragraphAttributes.minimumFontSize;
}

if (!floatEquality(
paragraphAttributes.maximumFontSize,
oldProps->paragraphAttributes.maximumFontSize)) {
result["maximumFontSize"] = paragraphAttributes.maximumFontSize;
}

if (paragraphAttributes.includeFontPadding !=
oldProps->paragraphAttributes.includeFontPadding) {
result["includeFontPadding"] = paragraphAttributes.includeFontPadding;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,6 @@ void BaseTextInputProps::setProp(
paragraphAttributes,
minimumFontSize,
"minimumFontSize");
REBUILD_FIELD_SWITCH_CASE(
paDefaults,
value,
paragraphAttributes,
maximumFontSize,
"maximumFontSize");
REBUILD_FIELD_SWITCH_CASE(
paDefaults,
value,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -395,12 +395,6 @@ folly::dynamic AndroidTextInputProps::getDiffProps(
result["minimumFontSize"] = paragraphAttributes.minimumFontSize;
}

if (!floatEquality(
paragraphAttributes.maximumFontSize,
oldProps->paragraphAttributes.maximumFontSize)) {
result["maximumFontSize"] = paragraphAttributes.maximumFontSize;
}

if (paragraphAttributes.includeFontPadding !=
oldProps->paragraphAttributes.includeFontPadding) {
result["includeFontPadding"] = paragraphAttributes.includeFontPadding;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,22 @@ - (LinesMeasurements)getLinesForAttributedString:(facebook::react::AttributedStr
return paragraphLines;
}

- (CGFloat)_maximumFontSizeInAttributedString:(NSAttributedString *)attributedString
{
__block CGFloat maximumFontSize = 0.0;
[attributedString enumerateAttribute:NSFontAttributeName
inRange:NSMakeRange(0, attributedString.length)
options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
usingBlock:^(id _Nullable value, NSRange range, BOOL *_Nonnull stop) {
CGFloat fontSize = ((UIFont *)value).pointSize;
if (fontSize > maximumFontSize) {
maximumFontSize = fontSize;
}
}];

return maximumFontSize;
}

- (NSTextStorage *)_textStorageAndLayoutManagerWithAttributesString:(NSAttributedString *)attributedString
paragraphAttributes:(ParagraphAttributes)paragraphAttributes
size:(CGSize)size
Expand All @@ -439,7 +455,7 @@ - (NSTextStorage *)_textStorageAndLayoutManagerWithAttributesString:(NSAttribute

if (paragraphAttributes.adjustsFontSizeToFit) {
CGFloat minimumFontSize = !isnan(paragraphAttributes.minimumFontSize) ? paragraphAttributes.minimumFontSize : 4.0;
CGFloat maximumFontSize = !isnan(paragraphAttributes.maximumFontSize) ? paragraphAttributes.maximumFontSize : 96.0;
CGFloat maximumFontSize = [self _maximumFontSizeInAttributedString:attributedString];
[textStorage scaleFontSizeToFitSize:size minimumFontSize:minimumFontSize maximumFontSize:maximumFontSize];
}

Expand Down
2 changes: 0 additions & 2 deletions scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,6 @@ static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_ADJUST_
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_ELLIPSIZE_MODE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_HYPHENATION_FREQUENCY;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_INCLUDE_FONT_PADDING;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MAXIMUM_FONT_SIZE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MAX_NUMBER_OF_LINES;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MINIMUM_FONT_SIZE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_TEXT_ALIGN_VERTICAL;
Expand Down Expand Up @@ -4016,7 +4015,6 @@ class facebook::react::ParagraphAttributes : public facebook::react::DebugString
public bool includeFontPadding;
public bool operator==(const facebook::react::ParagraphAttributes& rhs) const;
public facebook::react::EllipsizeMode ellipsizeMode;
public facebook::react::Float maximumFontSize;
public facebook::react::Float minimumFontScale;
public facebook::react::Float minimumFontSize;
public facebook::react::HyphenationFrequency android_hyphenationFrequency;
Expand Down
2 changes: 0 additions & 2 deletions scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,6 @@ static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_ADJUST_
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_ELLIPSIZE_MODE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_HYPHENATION_FREQUENCY;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_INCLUDE_FONT_PADDING;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MAXIMUM_FONT_SIZE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MAX_NUMBER_OF_LINES;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MINIMUM_FONT_SIZE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_TEXT_ALIGN_VERTICAL;
Expand Down Expand Up @@ -3870,7 +3869,6 @@ class facebook::react::ParagraphAttributes : public facebook::react::DebugString
public bool includeFontPadding;
public bool operator==(const facebook::react::ParagraphAttributes& rhs) const;
public facebook::react::EllipsizeMode ellipsizeMode;
public facebook::react::Float maximumFontSize;
public facebook::react::Float minimumFontScale;
public facebook::react::Float minimumFontSize;
public facebook::react::HyphenationFrequency android_hyphenationFrequency;
Expand Down
2 changes: 0 additions & 2 deletions scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,6 @@ static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_ADJUST_
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_ELLIPSIZE_MODE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_HYPHENATION_FREQUENCY;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_INCLUDE_FONT_PADDING;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MAXIMUM_FONT_SIZE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MAX_NUMBER_OF_LINES;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_MINIMUM_FONT_SIZE;
static constexpr facebook::react::MapBuffer::Key facebook::react::PA_KEY_TEXT_ALIGN_VERTICAL;
Expand Down Expand Up @@ -4013,7 +4012,6 @@ class facebook::react::ParagraphAttributes : public facebook::react::DebugString
public bool includeFontPadding;
public bool operator==(const facebook::react::ParagraphAttributes& rhs) const;
public facebook::react::EllipsizeMode ellipsizeMode;
public facebook::react::Float maximumFontSize;
public facebook::react::Float minimumFontScale;
public facebook::react::Float minimumFontSize;
public facebook::react::HyphenationFrequency android_hyphenationFrequency;
Expand Down
1 change: 0 additions & 1 deletion scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -6201,7 +6201,6 @@ class facebook::react::ParagraphAttributes : public facebook::react::DebugString
public bool includeFontPadding;
public bool operator==(const facebook::react::ParagraphAttributes& rhs) const;
public facebook::react::EllipsizeMode ellipsizeMode;
public facebook::react::Float maximumFontSize;
public facebook::react::Float minimumFontScale;
public facebook::react::Float minimumFontSize;
public facebook::react::HyphenationFrequency android_hyphenationFrequency;
Expand Down
1 change: 0 additions & 1 deletion scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -6087,7 +6087,6 @@ class facebook::react::ParagraphAttributes : public facebook::react::DebugString
public bool includeFontPadding;
public bool operator==(const facebook::react::ParagraphAttributes& rhs) const;
public facebook::react::EllipsizeMode ellipsizeMode;
public facebook::react::Float maximumFontSize;
public facebook::react::Float minimumFontScale;
public facebook::react::Float minimumFontSize;
public facebook::react::HyphenationFrequency android_hyphenationFrequency;
Expand Down
1 change: 0 additions & 1 deletion scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -6198,7 +6198,6 @@ class facebook::react::ParagraphAttributes : public facebook::react::DebugString
public bool includeFontPadding;
public bool operator==(const facebook::react::ParagraphAttributes& rhs) const;
public facebook::react::EllipsizeMode ellipsizeMode;
public facebook::react::Float maximumFontSize;
public facebook::react::Float minimumFontScale;
public facebook::react::Float minimumFontSize;
public facebook::react::HyphenationFrequency android_hyphenationFrequency;
Expand Down
1 change: 0 additions & 1 deletion scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -2625,7 +2625,6 @@ class facebook::react::OperatorAnimatedNode : public facebook::react::ValueAnima
}

class facebook::react::ParagraphAttributes : public facebook::react::DebugStringConvertible {
public Float maximumFontSize;
public Float minimumFontScale;
public Float minimumFontSize;
public bool adjustsFontSizeToFit;
Expand Down
1 change: 0 additions & 1 deletion scripts/cxx-api/api-snapshots/ReactCommonNewarchCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -2519,7 +2519,6 @@ class facebook::react::OperatorAnimatedNode : public facebook::react::ValueAnima
}

class facebook::react::ParagraphAttributes : public facebook::react::DebugStringConvertible {
public Float maximumFontSize;
public Float minimumFontScale;
public Float minimumFontSize;
public bool adjustsFontSizeToFit;
Expand Down
1 change: 0 additions & 1 deletion scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -2622,7 +2622,6 @@ class facebook::react::OperatorAnimatedNode : public facebook::react::ValueAnima
}

class facebook::react::ParagraphAttributes : public facebook::react::DebugStringConvertible {
public Float maximumFontSize;
public Float minimumFontScale;
public Float minimumFontSize;
public bool adjustsFontSizeToFit;
Expand Down
Loading