OSDN Git Service

Fix CTS TextViewTest
authorSeigo Nonaka <nona@google.com>
Thu, 1 Mar 2018 22:29:34 +0000 (14:29 -0800)
committerSeigo Nonaka <nona@google.com>
Thu, 1 Mar 2018 22:29:34 +0000 (14:29 -0800)
Id65a7e36487375f0e3a2c2da44ad8d7c5ea49734 changes the typeface
associated with the TextView. It used be null if no attribute was set,
but after above change, it is now Typeface.DEFAULT.

The typeface is null means Typeface.DEFAULT but there is an expectations
in CTS that getTypeface must return null if no attribute was set.

To keep this behavior, call setTypeface with null if no font weight value
was set.

Bug: 74080879
Test: atest CtsWidgetTestCases:EditTextTest
    CtsWidgetTestCases:TextViewFadingEdgeTest
    FrameworksCoreTests:TextViewFallbackLineSpacingTest
    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest
    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest
    CtsTextTestCases FrameworksCoreTests:android.text

Change-Id: Ic91827bbeed8a3a4b148dd8d305c78e384407ab0

core/java/android/widget/TextView.java

index 50e6393..b482d47 100644 (file)
@@ -2025,7 +2025,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
             final boolean italic = (style & Typeface.ITALIC) != 0;
             setTypeface(Typeface.create(typeface, weight, italic));
         } else {
-            setTypeface(Typeface.create(typeface, style));
+            setTypeface(typeface, style);
         }
     }
 
@@ -2111,7 +2111,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
      * @attr ref android.R.styleable#TextView_typeface
      * @attr ref android.R.styleable#TextView_textStyle
      */
-    public void setTypeface(Typeface tf, int style) {
+    public void setTypeface(@Nullable Typeface tf, @Typeface.Style int style) {
         if (style > 0) {
             if (tf == null) {
                 tf = Typeface.defaultFromStyle(style);
@@ -3896,7 +3896,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
      * @attr ref android.R.styleable#TextView_typeface
      * @attr ref android.R.styleable#TextView_textStyle
      */
-    public void setTypeface(Typeface tf) {
+    public void setTypeface(@Nullable Typeface tf) {
         if (mTextPaint.getTypeface() != tf) {
             mTextPaint.setTypeface(tf);