diff options
| -rw-r--r-- | graphics/java/android/graphics/Paint.java | 7 | ||||
| -rw-r--r-- | graphics/java/android/graphics/Typeface.java | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index b5b9fdbee878..e3b47405e0d4 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -1596,10 +1596,13 @@ public class Paint { return true; } + // The null typeface is valid and it is equivalent to Typeface.DEFAULT. + // To call isSupportedAxes method, use Typeface.DEFAULT instance. + Typeface targetTypeface = mTypeface == null ? Typeface.DEFAULT : mTypeface; FontVariationAxis[] axes = FontVariationAxis.fromFontVariationSettings(settings); final ArrayList<FontVariationAxis> filteredAxes = new ArrayList<FontVariationAxis>(); for (final FontVariationAxis axis : axes) { - if (mTypeface.isSupportedAxes(axis.getOpenTypeTagValue())) { + if (targetTypeface.isSupportedAxes(axis.getOpenTypeTagValue())) { filteredAxes.add(axis); } } @@ -1607,7 +1610,7 @@ public class Paint { return false; } mFontVariationSettings = settings; - setTypeface(Typeface.createFromTypefaceWithVariation(mTypeface, filteredAxes)); + setTypeface(Typeface.createFromTypefaceWithVariation(targetTypeface, filteredAxes)); return true; } diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java index 5a56f5335373..c4b56c333c64 100644 --- a/graphics/java/android/graphics/Typeface.java +++ b/graphics/java/android/graphics/Typeface.java @@ -725,8 +725,8 @@ public class Typeface { } /** @hide */ - public static Typeface createFromTypefaceWithVariation(Typeface family, - List<FontVariationAxis> axes) { + public static Typeface createFromTypefaceWithVariation(@Nullable Typeface family, + @NonNull List<FontVariationAxis> axes) { final long ni = family == null ? 0 : family.native_instance; return new Typeface(nativeCreateFromTypefaceWithVariation(ni, axes)); } @@ -1056,7 +1056,7 @@ public class Typeface { } } } - return Arrays.binarySearch(mSupportedAxes, axis) > 0; + return Arrays.binarySearch(mSupportedAxes, axis) >= 0; } private static native long nativeCreateFromTypeface(long native_instance, int style); |