diff --git a/core/java/android/text/flags/flags.aconfig b/core/java/android/text/flags/flags.aconfig index 785b1b2c49e4a17563e3e1c277cc4e16407332ee..7023ef7afd2f440677b04819554eafee42114477 100644 --- a/core/java/android/text/flags/flags.aconfig +++ b/core/java/android/text/flags/flags.aconfig @@ -201,3 +201,13 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + name: "fix_null_typeface_bolding" + namespace: "text" + description: "Use a bold typeface when bolding is enabled and the original typeface is null" + bug: "314811487" + metadata { + purpose: PURPOSE_BUGFIX + } +} diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 78dd3b18c2a6e95d1ea57360b510b666f1673236..fd3837f3fe12ae23f685bf0a5e5c349ed381b740 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -4817,7 +4817,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (mFontWeightAdjustment != 0 && mFontWeightAdjustment != Configuration.FONT_WEIGHT_ADJUSTMENT_UNDEFINED) { if (tf == null) { - tf = Typeface.DEFAULT; + if (Flags.fixNullTypefaceBolding()) { + tf = Typeface.DEFAULT_BOLD; + } else { + tf = Typeface.DEFAULT; + } } else { int newWeight = Math.min( Math.max(tf.getWeight() + mFontWeightAdjustment, FontStyle.FONT_WEIGHT_MIN),