summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorSelim Cinek <cinek@google.com>2016-02-27 01:19:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-02-27 01:19:46 +0000
commit9620d8652bacc84e179ff9a2548d7cb833887437 (patch)
tree04dd170f0d60399f3cf3529fc5d078b25ea2ab4f /core/java
parent526a08f24a888e84779dada7902b089f55874cc7 (diff)
parent60a542559256fd2c60d66fdbaf292fdf1e93db5b (diff)
Merge "Adapted the notficication style" into nyc-dev
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/Notification.java33
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() {