From 89991a205aa23c9620fe878bc8765a9169a825b6 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Mon, 7 Mar 2016 19:51:54 -0800 Subject: [PATCH] Fixed a bug where the font sizes where not enforced correctly If a style was passed through it wasn't processed correctly. Bug: 27431551 Change-Id: If764634cbc8a5bf13260a8fc4f392bc8b7482f4d --- core/java/android/app/Notification.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index d8f0ac518151a..b0d2e7746f48d 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -47,6 +47,7 @@ import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; import android.text.style.AbsoluteSizeSpan; +import android.text.style.CharacterStyle; import android.text.style.RelativeSizeSpan; import android.text.style.TextAppearanceSpan; import android.util.Log; @@ -1664,17 +1665,22 @@ public class Notification implements Parcelable SpannableStringBuilder builder = new SpannableStringBuilder(ss.toString()); for (Object span : spans) { Object resultSpan = span; - if (span instanceof TextAppearanceSpan) { - TextAppearanceSpan originalSpan = (TextAppearanceSpan) span; + if (resultSpan instanceof CharacterStyle) { + resultSpan = ((CharacterStyle) span).getUnderlying(); + } + if (resultSpan instanceof TextAppearanceSpan) { + TextAppearanceSpan originalSpan = (TextAppearanceSpan) resultSpan; resultSpan = new TextAppearanceSpan( originalSpan.getFamily(), originalSpan.getTextStyle(), -1, originalSpan.getTextColor(), originalSpan.getLinkTextColor()); - } else if (span instanceof RelativeSizeSpan - || span instanceof AbsoluteSizeSpan) { + } else if (resultSpan instanceof RelativeSizeSpan + || resultSpan instanceof AbsoluteSizeSpan) { continue; + } else { + resultSpan = span; } builder.setSpan(resultSpan, ss.getSpanStart(span), ss.getSpanEnd(span), ss.getSpanFlags(span));