Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc790383 authored by Seigo Nonaka's avatar Seigo Nonaka Committed by android-build-merger
Browse files

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

am: 633b32be

Change-Id: If19a949458e8791dfb393d9911450226a5969003
parents 8cbb7c9a 633b32be
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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;
    }

+3 −3
Original line number Diff line number Diff line
@@ -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);