Merge "Move maximum weight constant from Typeface to Font and make it public"

This commit is contained in:
Seigo Nonaka
2018-09-11 05:02:46 +00:00
committed by Android (Google) Code Review
4 changed files with 21 additions and 12 deletions

View File

@@ -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

View File

@@ -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 {

View File

@@ -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

View File

@@ -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) {