From 788866e4483621e2222f649e617ee95f7aa9caa6 Mon Sep 17 00:00:00 2001 From: conradchen Date: Fri, 15 Apr 2022 14:13:59 -0400 Subject: [PATCH] [Chip] Fix chip layout not updated when programmatically setting text size We didn't forward Chip.setTextSize() call properly to ChipDrawable.setTextSize(). Fixes this by properly overriding the method. Resolves https://github.com/material-components/material-components-android/issues/1855 PiperOrigin-RevId: 442056225 --- lib/java/com/google/android/material/chip/Chip.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/java/com/google/android/material/chip/Chip.java b/lib/java/com/google/android/material/chip/Chip.java index c85dda446e7..b14a2b34b97 100644 --- a/lib/java/com/google/android/material/chip/Chip.java +++ b/lib/java/com/google/android/material/chip/Chip.java @@ -44,6 +44,7 @@ import android.text.TextUtils.TruncateAt; import android.util.AttributeSet; import android.util.Log; +import android.util.TypedValue; import android.view.Gravity; import android.view.KeyEvent; import android.view.MotionEvent; @@ -1366,6 +1367,16 @@ public void setTextAppearance(int resId) { updateTextPaintDrawState(); } + @Override + public void setTextSize(int unit, float size) { + super.setTextSize(unit, size); + if (chipDrawable != null) { + chipDrawable.setTextSize( + TypedValue.applyDimension(unit, size, getResources().getDisplayMetrics())); + } + updateTextPaintDrawState(); + } + private void updateTextPaintDrawState() { TextPaint textPaint = getPaint(); if (chipDrawable != null) {