Skip to content

Commit da325ad

Browse files
Keep ellipsizeMode when adjustsFontSizeToFit is set on Android
ReactTextView.updateView() cleared the ellipsize location whenever adjustsFontSizeToFit was on. Now that minimumFontScale can stop the text from shrinking further, text that still does not fit at the floor was clipped instead of ellipsized. iOS applies the ellipsize mode regardless of adjustsFontSizeToFit, so do the same here.
1 parent aa854a1 commit da325ad

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

‎packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -585,9 +585,7 @@ public void setEllipsizeLocation(@Nullable TextUtils.TruncateAt ellipsizeLocatio
585585
public void updateView() {
586586
@Nullable
587587
TextUtils.TruncateAt ellipsizeLocation =
588-
mNumberOfLines == ViewDefaults.NUMBER_OF_LINES || mAdjustsFontSizeToFit
589-
? null
590-
: mEllipsizeLocation;
588+
mNumberOfLines == ViewDefaults.NUMBER_OF_LINES ? null : mEllipsizeLocation;
591589
setEllipsize(ellipsizeLocation);
592590
}
593591

‎packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/text/ReactTextViewTest.kt‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import android.graphics.Color
1414
import android.graphics.Paint
1515
import android.text.SpannableString
1616
import android.text.Spanned
17+
import android.text.TextUtils
1718
import android.text.style.ReplacementSpan
1819
import android.util.TypedValue
1920
import android.view.Gravity
@@ -122,6 +123,18 @@ class ReactTextViewTest {
122123
assertThat(view.useBoundsForWidth).isFalse()
123124
}
124125

126+
@Test
127+
fun adjustsFontSizeToFitKeepsEllipsizeLocation() {
128+
val view = TestReactTextView(RuntimeEnvironment.getApplication())
129+
view.setNumberOfLines(1)
130+
view.setEllipsizeLocation(TextUtils.TruncateAt.END)
131+
view.setAdjustFontSizeToFit(true)
132+
133+
view.updateView()
134+
135+
assertThat(view.ellipsize).isEqualTo(TextUtils.TruncateAt.END)
136+
}
137+
125138
private fun layoutAndDraw(view: TestReactTextView, width: Int, height: Int) {
126139
view.measure(
127140
View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY),

0 commit comments

Comments
 (0)