Merge "Fix NPE and wrong behavior of Typeface.isSupportedAxes" into oc-dev

am: 633b32be55

Change-Id: If19a949458e8791dfb393d9911450226a5969003
This commit is contained in:
Seigo Nonaka
2017-05-31 00:10:56 +00:00
committed by android-build-merger
2 changed files with 8 additions and 5 deletions

View File

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

View File

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