3434import android .graphics .Rect ;
3535import android .graphics .RectF ;
3636import android .graphics .Typeface ;
37- import android .graphics .fonts .FontStyle ;
3837import android .os .Build ;
3938import android .os .Build .VERSION ;
4039import android .os .Build .VERSION_CODES ;
6160import com .google .android .material .resources .CancelableFontCallback ;
6261import com .google .android .material .resources .CancelableFontCallback .ApplyFont ;
6362import com .google .android .material .resources .TextAppearance ;
63+ import com .google .android .material .resources .TypefaceUtils ;
6464
6565/**
6666 * Helper class for rendering and animating collapsed text.
@@ -122,7 +122,6 @@ public final class CollapsingTextHelper {
122122 private Typeface expandedTypefaceBold ;
123123 private Typeface expandedTypefaceDefault ;
124124 private Typeface currentTypeface ;
125- private int fontWeightAdjustment ;
126125 private CancelableFontCallback expandedFontCallback ;
127126 private CancelableFontCallback collapsedFontCallback ;
128127
@@ -472,7 +471,9 @@ private boolean setCollapsedTypefaceInternal(Typeface typeface) {
472471 }
473472 if (collapsedTypefaceDefault != typeface ) {
474473 collapsedTypefaceDefault = typeface ;
475- collapsedTypefaceBold = maybeCloneWithAdjustment (typeface );
474+ collapsedTypefaceBold = TypefaceUtils .maybeCopyWithFontWeightAdjustment (
475+ view .getContext ().getResources ().getConfiguration (),
476+ typeface );
476477 collapsedTypeface = collapsedTypefaceBold == null
477478 ? collapsedTypefaceDefault : collapsedTypefaceBold ;
478479 return true ;
@@ -489,7 +490,9 @@ private boolean setExpandedTypefaceInternal(Typeface typeface) {
489490 }
490491 if (expandedTypefaceDefault != typeface ) {
491492 expandedTypefaceDefault = typeface ;
492- expandedTypefaceBold = maybeCloneWithAdjustment (typeface );
493+ expandedTypefaceBold = TypefaceUtils .maybeCopyWithFontWeightAdjustment (
494+ view .getContext ().getResources ().getConfiguration (),
495+ typeface );
493496 expandedTypeface = expandedTypefaceBold == null
494497 ? expandedTypefaceDefault : expandedTypefaceBold ;
495498 return true ;
@@ -507,12 +510,15 @@ public Typeface getExpandedTypeface() {
507510
508511 public void maybeUpdateFontWeightAdjustment (@ NonNull Configuration configuration ) {
509512 if (VERSION .SDK_INT >= VERSION_CODES .S ) {
510- fontWeightAdjustment = configuration .fontWeightAdjustment ;
511513 if (collapsedTypefaceDefault != null ) {
512- collapsedTypefaceBold = maybeCloneWithAdjustment (collapsedTypefaceDefault );
514+ collapsedTypefaceBold = TypefaceUtils .maybeCopyWithFontWeightAdjustment (
515+ configuration ,
516+ collapsedTypefaceDefault );
513517 }
514518 if (expandedTypefaceDefault != null ) {
515- expandedTypefaceBold = maybeCloneWithAdjustment (expandedTypefaceDefault );
519+ expandedTypefaceBold = TypefaceUtils .maybeCopyWithFontWeightAdjustment (
520+ configuration ,
521+ expandedTypefaceDefault );
516522 }
517523 collapsedTypeface = collapsedTypefaceBold != null
518524 ? collapsedTypefaceBold : collapsedTypefaceDefault ;
@@ -522,25 +528,6 @@ public void maybeUpdateFontWeightAdjustment(@NonNull Configuration configuration
522528 }
523529 }
524530
525- private boolean shouldUseBoldTypefaces () {
526- return VERSION .SDK_INT >= VERSION_CODES .S
527- && fontWeightAdjustment != Configuration .FONT_WEIGHT_ADJUSTMENT_UNDEFINED
528- && fontWeightAdjustment != 0 ;
529- }
530-
531- @ Nullable
532- private Typeface maybeCloneWithAdjustment (@ NonNull Typeface typeface ) {
533- if (shouldUseBoldTypefaces ()) {
534- int adjustedWeight =
535- MathUtils .clamp (
536- typeface .getWeight () + fontWeightAdjustment ,
537- FontStyle .FONT_WEIGHT_MIN ,
538- FontStyle .FONT_WEIGHT_MAX );
539- return Typeface .create (typeface , adjustedWeight , typeface .isItalic ());
540- }
541- return null ;
542- }
543-
544531 /**
545532 * Set the value indicating the current scroll value. This decides how much of the background will
546533 * be displayed, as well as the title metrics/positioning.
0 commit comments