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

Commit d134b892 authored by Clara Bayarri's avatar Clara Bayarri
Browse files

Ignore non-font resource references in TextView constructor

TextView was blowing up in its constructor when fontFamily was
set in xml to a reference that was not a font, e.g. @style/mystyle.

These values should be ignored as they are not valid, but we don't
want to crash the app for it either.

Bug: 35863153
Test: See topic
run cts -m CtsWidgetTestCases -t android.widget.cts.TextViewTest#testFontResources_setInXmlStyle

Change-Id: I5d9443e70a36122d312c3a9f2c0dcffb530dbca8
parent b01d3db7
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -871,7 +871,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                    case com.android.internal.R.styleable.TextAppearance_fontFamily:
                        try {
                            fontTypeface = appearance.getFont(attr);
                        } catch (UnsupportedOperationException e) {
                        } catch (UnsupportedOperationException | Resources.NotFoundException e) {
                            // Expected if it is not a font resource.
                        }
                        if (fontTypeface == null) {
@@ -1185,8 +1185,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                case com.android.internal.R.styleable.TextView_fontFamily:
                    try {
                        fontTypeface = a.getFont(attr);
                    } catch (UnsupportedOperationException e) {
                        // Expected if it is not a font resource.
                    } catch (UnsupportedOperationException | Resources.NotFoundException e) {
                        // Expected if it is not a resource reference or if it is a reference to
                        // another resource type.
                    }
                    if (fontTypeface == null) {
                        fontFamily = a.getString(attr);
@@ -3312,7 +3313,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        String fontFamily = null;
        try {
            fontTypeface = ta.getFont(R.styleable.TextAppearance_fontFamily);
        } catch (UnsupportedOperationException e) {
        } catch (UnsupportedOperationException | Resources.NotFoundException e) {
            // Expected if it is not a font resource.
        }
        if (fontTypeface == null) {