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

Commit c89eaf91 authored by Victoria Lease's avatar Victoria Lease Committed by Android (Google) Code Review
Browse files

Merge "Fix for Typeface.create(Typeface, style) semantics changed in KK" into klp-dev

parents 04cead14 4f0064fa
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -34,6 +34,13 @@ static SkTypeface* Typeface_create(JNIEnv* env, jobject, jstring name,
    if (NULL != name) {
        AutoJavaStringToUTF8    str(env, name);
        face = SkTypeface::CreateFromName(str.c_str(), style);
        // Try to find the closest matching font, using the standard heuristic
        if (NULL == face) {
            face = SkTypeface::CreateFromName(str.c_str(), (SkTypeface::Style)(style ^ SkTypeface::kItalic));
        }
        for (int i = 0; NULL == face && i < 4; i++) {
            face = SkTypeface::CreateFromName(str.c_str(), (SkTypeface::Style)i);
        }
    }

    // return the default font at the best style if no exact match exists
@@ -45,8 +52,13 @@ static SkTypeface* Typeface_create(JNIEnv* env, jobject, jstring name,

static SkTypeface* Typeface_createFromTypeface(JNIEnv* env, jobject, SkTypeface* family, int style) {
    SkTypeface* face = SkTypeface::CreateFromTypeface(family, (SkTypeface::Style)style);
    // return the default font at the best style if the requested style does not
    // exist in the provided family
    // Try to find the closest matching font, using the standard heuristic
    if (NULL == face) {
        face = SkTypeface::CreateFromTypeface(family, (SkTypeface::Style)(style ^ SkTypeface::kItalic));
    }
    for (int i = 0; NULL == face && i < 4; i++) {
        face = SkTypeface::CreateFromTypeface(family, (SkTypeface::Style)i);
    }
    if (NULL == face) {
        face = SkTypeface::CreateFromName(NULL, (SkTypeface::Style)style);
    }