diff --git a/api/current.txt b/api/current.txt index 46fa3f06dcada..e31f8a05611d9 100755 --- a/api/current.txt +++ b/api/current.txt @@ -15244,7 +15244,9 @@ package android.graphics.fonts { field public static final int FONT_WEIGHT_EXTRA_BOLD = 800; // 0x320 field public static final int FONT_WEIGHT_EXTRA_LIGHT = 200; // 0xc8 field public static final int FONT_WEIGHT_LIGHT = 300; // 0x12c + field public static final int FONT_WEIGHT_MAX = 1000; // 0x3e8 field public static final int FONT_WEIGHT_MEDIUM = 500; // 0x1f4 + field public static final int FONT_WEIGHT_MIN = 1; // 0x1 field public static final int FONT_WEIGHT_NORMAL = 400; // 0x190 field public static final int FONT_WEIGHT_SEMI_BOLD = 600; // 0x258 field public static final int FONT_WEIGHT_THIN = 100; // 0x64 diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 1b412a7e1e43a..0645a162f377b 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -63,6 +63,7 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Typeface; import android.graphics.drawable.Drawable; +import android.graphics.fonts.Font; import android.graphics.fonts.FontVariationAxis; import android.icu.text.DecimalFormatSymbols; import android.os.AsyncTask; @@ -2068,7 +2069,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener */ private void setTypefaceFromAttrs(@Nullable Typeface typeface, @Nullable String familyName, @XMLTypefaceAttr int typefaceIndex, @Typeface.Style int style, - @IntRange(from = -1, to = Typeface.MAX_WEIGHT) int weight) { + @IntRange(from = -1, to = Font.FONT_WEIGHT_MAX) int weight) { if (typeface == null && familyName != null) { // Lookup normal Typeface from system font map. final Typeface normalTypeface = Typeface.create(familyName, Typeface.NORMAL); @@ -2095,9 +2096,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } private void resolveStyleAndSetTypeface(@NonNull Typeface typeface, @Typeface.Style int style, - @IntRange(from = -1, to = Typeface.MAX_WEIGHT) int weight) { + @IntRange(from = -1, to = Font.FONT_WEIGHT_MAX) int weight) { if (weight >= 0) { - weight = Math.min(Typeface.MAX_WEIGHT, weight); + weight = Math.min(Font.FONT_WEIGHT_MAX, weight); final boolean italic = (style & Typeface.ITALIC) != 0; setTypeface(Typeface.create(typeface, weight, italic)); } else { diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java index 4388411c6a994..5aa09cef0c4e9 100644 --- a/graphics/java/android/graphics/Typeface.java +++ b/graphics/java/android/graphics/Typeface.java @@ -148,13 +148,7 @@ public class Typeface { @UnsupportedAppUsage private @Style int mStyle = 0; - /** - * A maximum value for the weight value. - * @hide - */ - public static final int MAX_WEIGHT = 1000; - - private @IntRange(from = 0, to = MAX_WEIGHT) int mWeight = 0; + private @IntRange(from = 0, to = android.graphics.fonts.Font.FONT_WEIGHT_MAX) int mWeight = 0; // Value for weight and italic. Indicates the value is resolved by font metadata. // Must be the same as the C++ constant in core/jni/android/graphics/FontFamily.cpp diff --git a/graphics/java/android/graphics/fonts/Font.java b/graphics/java/android/graphics/fonts/Font.java index a99d297cbd926..8aa48456ebff6 100644 --- a/graphics/java/android/graphics/fonts/Font.java +++ b/graphics/java/android/graphics/fonts/Font.java @@ -50,6 +50,11 @@ public final class Font { private static final int STYLE_ITALIC = 1; private static final int STYLE_NORMAL = 0; + /** + * A minimum weight value for the font + */ + public static final int FONT_WEIGHT_MIN = 1; + /** * A font weight value for the thin weight */ @@ -95,6 +100,11 @@ public final class Font { */ public static final int FONT_WEIGHT_BLACK = 900; + /** + * A maximum weight value for the font + */ + public static final int FONT_WEIGHT_MAX = 1000; + /** * A builder class for creating new Font. */ @@ -322,8 +332,9 @@ public final class Font { * @param weight a weight value * @return this builder */ - public @NonNull Builder setWeight(@IntRange(from = 1, to = 1000) int weight) { - Preconditions.checkArgument(1 <= weight && weight <= 1000); + public @NonNull Builder setWeight( + @IntRange(from = FONT_WEIGHT_MIN, to = FONT_WEIGHT_MAX) int weight) { + Preconditions.checkArgument(FONT_WEIGHT_MIN <= weight && weight <= FONT_WEIGHT_MAX); mWeight = weight; return this; } @@ -403,6 +414,7 @@ public final class Font { mItalic = STYLE_NORMAL; } } + mWeight = Math.max(FONT_WEIGHT_MIN, Math.min(FONT_WEIGHT_MAX, mWeight)); final boolean italic = (mItalic == STYLE_ITALIC); final long builderPtr = nInitBuilder(); if (mAxes != null) {