diff options
| author | Selim Cinek <cinek@google.com> | 2016-02-27 01:19:45 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-02-27 01:19:46 +0000 |
| commit | 9620d8652bacc84e179ff9a2548d7cb833887437 (patch) | |
| tree | 04dd170f0d60399f3cf3529fc5d078b25ea2ab4f /core/java | |
| parent | 526a08f24a888e84779dada7902b089f55874cc7 (diff) | |
| parent | 60a542559256fd2c60d66fdbaf292fdf1e93db5b (diff) | |
Merge "Adapted the notficication style" into nyc-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/Notification.java | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index aa5e1929b8fe..686bd935bf51 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -43,7 +43,12 @@ import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; import android.os.UserHandle; +import android.text.SpannableStringBuilder; +import android.text.Spanned; import android.text.TextUtils; +import android.text.style.AbsoluteSizeSpan; +import android.text.style.RelativeSizeSpan; +import android.text.style.TextAppearanceSpan; import android.util.Log; import android.util.SparseArray; import android.util.TypedValue; @@ -1649,8 +1654,34 @@ public class Notification implements Parcelable + " instance is a custom Parcelable and not allowed in Notification"); return cs.toString(); } + return removeTextSizeSpans(cs); + } - return cs; + private static CharSequence removeTextSizeSpans(CharSequence charSequence) { + if (charSequence instanceof Spanned) { + Spanned ss = (Spanned) charSequence; + Object[] spans = ss.getSpans(0, ss.length(), Object.class); + SpannableStringBuilder builder = new SpannableStringBuilder(ss.toString()); + for (Object span : spans) { + Object resultSpan = span; + if (span instanceof TextAppearanceSpan) { + TextAppearanceSpan originalSpan = (TextAppearanceSpan) span; + resultSpan = new TextAppearanceSpan( + originalSpan.getFamily(), + originalSpan.getTextStyle(), + -1, + originalSpan.getTextColor(), + originalSpan.getLinkTextColor()); + } else if (span instanceof RelativeSizeSpan + || span instanceof AbsoluteSizeSpan) { + continue; + } + builder.setSpan(resultSpan, ss.getSpanStart(span), ss.getSpanEnd(span), + ss.getSpanFlags(span)); + } + return builder; + } + return charSequence; } public int describeContents() { |
