Merge "Fixed a bug with app provided media spans" into oc-mr1-dev

This commit is contained in:
TreeHugger Robot
2017-08-23 04:04:54 +00:00
committed by Android (Google) Code Review

View File

@@ -3898,7 +3898,7 @@ public class Notification implements Parcelable
boolean showProgress = handleProgressBar(p.hasProgress, contentView, ex); boolean showProgress = handleProgressBar(p.hasProgress, contentView, ex);
if (p.title != null) { if (p.title != null) {
contentView.setViewVisibility(R.id.title, View.VISIBLE); contentView.setViewVisibility(R.id.title, View.VISIBLE);
contentView.setTextViewText(R.id.title, p.title); contentView.setTextViewText(R.id.title, processTextSpans(p.title));
if (!p.ambient) { if (!p.ambient) {
setTextViewColorPrimary(contentView, R.id.title); setTextViewColorPrimary(contentView, R.id.title);
} }
@@ -3909,7 +3909,7 @@ public class Notification implements Parcelable
if (p.text != null) { if (p.text != null) {
int textId = showProgress ? com.android.internal.R.id.text_line_1 int textId = showProgress ? com.android.internal.R.id.text_line_1
: com.android.internal.R.id.text; : com.android.internal.R.id.text;
contentView.setTextViewText(textId, p.text); contentView.setTextViewText(textId, processTextSpans(p.text));
if (!p.ambient) { if (!p.ambient) {
setTextViewColorSecondary(contentView, textId); setTextViewColorSecondary(contentView, textId);
} }
@@ -3921,11 +3921,22 @@ public class Notification implements Parcelable
return contentView; return contentView;
} }
private CharSequence processTextSpans(CharSequence text) {
if (hasForegroundColor()) {
return clearColorSpans(text);
}
return text;
}
private void setTextViewColorPrimary(RemoteViews contentView, int id) { private void setTextViewColorPrimary(RemoteViews contentView, int id) {
ensureColors(); ensureColors();
contentView.setTextColor(id, mPrimaryTextColor); contentView.setTextColor(id, mPrimaryTextColor);
} }
private boolean hasForegroundColor() {
return mForegroundColor != COLOR_INVALID;
}
/** /**
* @return the primary text color * @return the primary text color
* @hide * @hide
@@ -3968,7 +3979,7 @@ public class Notification implements Parcelable
|| mActionBarColor == COLOR_INVALID || mActionBarColor == COLOR_INVALID
|| mTextColorsAreForBackground != backgroundColor) { || mTextColorsAreForBackground != backgroundColor) {
mTextColorsAreForBackground = backgroundColor; mTextColorsAreForBackground = backgroundColor;
if (mForegroundColor == COLOR_INVALID || !isColorized()) { if (!hasForegroundColor() || !isColorized()) {
mPrimaryTextColor = NotificationColorUtil.resolvePrimaryColor(mContext, mPrimaryTextColor = NotificationColorUtil.resolvePrimaryColor(mContext,
backgroundColor); backgroundColor);
mSecondaryTextColor = NotificationColorUtil.resolveSecondaryColor(mContext, mSecondaryTextColor = NotificationColorUtil.resolveSecondaryColor(mContext,
@@ -4219,7 +4230,8 @@ public class Notification implements Parcelable
} }
if (headerText != null) { if (headerText != null) {
// TODO: Remove the span entirely to only have the string with propper formating. // TODO: Remove the span entirely to only have the string with propper formating.
contentView.setTextViewText(R.id.header_text, processLegacyText(headerText)); contentView.setTextViewText(R.id.header_text, processTextSpans(
processLegacyText(headerText)));
setTextViewColorSecondary(contentView, R.id.header_text); setTextViewColorSecondary(contentView, R.id.header_text);
contentView.setViewVisibility(R.id.header_text, View.VISIBLE); contentView.setViewVisibility(R.id.header_text, View.VISIBLE);
contentView.setViewVisibility(R.id.header_text_divider, View.VISIBLE); contentView.setViewVisibility(R.id.header_text_divider, View.VISIBLE);
@@ -4350,18 +4362,21 @@ public class Notification implements Parcelable
if (!p.ambient && validRemoteInput && replyText != null if (!p.ambient && validRemoteInput && replyText != null
&& replyText.length > 0 && !TextUtils.isEmpty(replyText[0])) { && replyText.length > 0 && !TextUtils.isEmpty(replyText[0])) {
big.setViewVisibility(R.id.notification_material_reply_container, View.VISIBLE); big.setViewVisibility(R.id.notification_material_reply_container, View.VISIBLE);
big.setTextViewText(R.id.notification_material_reply_text_1, replyText[0]); big.setTextViewText(R.id.notification_material_reply_text_1,
processTextSpans(replyText[0]));
setTextViewColorSecondary(big, R.id.notification_material_reply_text_1); setTextViewColorSecondary(big, R.id.notification_material_reply_text_1);
if (replyText.length > 1 && !TextUtils.isEmpty(replyText[1])) { if (replyText.length > 1 && !TextUtils.isEmpty(replyText[1])) {
big.setViewVisibility(R.id.notification_material_reply_text_2, View.VISIBLE); big.setViewVisibility(R.id.notification_material_reply_text_2, View.VISIBLE);
big.setTextViewText(R.id.notification_material_reply_text_2, replyText[1]); big.setTextViewText(R.id.notification_material_reply_text_2,
processTextSpans(replyText[1]));
setTextViewColorSecondary(big, R.id.notification_material_reply_text_2); setTextViewColorSecondary(big, R.id.notification_material_reply_text_2);
if (replyText.length > 2 && !TextUtils.isEmpty(replyText[2])) { if (replyText.length > 2 && !TextUtils.isEmpty(replyText[2])) {
big.setViewVisibility( big.setViewVisibility(
R.id.notification_material_reply_text_3, View.VISIBLE); R.id.notification_material_reply_text_3, View.VISIBLE);
big.setTextViewText(R.id.notification_material_reply_text_3, replyText[2]); big.setTextViewText(R.id.notification_material_reply_text_3,
processTextSpans(replyText[2]));
setTextViewColorSecondary(big, R.id.notification_material_reply_text_3); setTextViewColorSecondary(big, R.id.notification_material_reply_text_3);
} }
} }
@@ -4673,7 +4688,7 @@ public class Notification implements Parcelable
outResultColor = new ColorStateList[1]; outResultColor = new ColorStateList[1];
title = ensureColorSpanContrast(title, bgColor, outResultColor); title = ensureColorSpanContrast(title, bgColor, outResultColor);
} }
button.setTextViewText(R.id.action0, title); button.setTextViewText(R.id.action0, processTextSpans(title));
setTextViewColorPrimary(button, R.id.action0); setTextViewColorPrimary(button, R.id.action0);
if (outResultColor != null && outResultColor[0] != null) { if (outResultColor != null && outResultColor[0] != null) {
// We need to set the text color as well since changing a text to uppercase // We need to set the text color as well since changing a text to uppercase
@@ -4683,7 +4698,8 @@ public class Notification implements Parcelable
button.setTextColor(R.id.action0,resolveContrastColor()); button.setTextColor(R.id.action0,resolveContrastColor());
} }
} else { } else {
button.setTextViewText(R.id.action0, processLegacyText(action.title)); button.setTextViewText(R.id.action0, processTextSpans(
processLegacyText(action.title)));
if (isColorized() && !ambient) { if (isColorized() && !ambient) {
setTextViewColorPrimary(button, R.id.action0); setTextViewColorPrimary(button, R.id.action0);
} else if (mN.color != COLOR_DEFAULT && mTintActionButtons) { } else if (mN.color != COLOR_DEFAULT && mTintActionButtons) {
@@ -5682,7 +5698,8 @@ public class Notification implements Parcelable
RemoteViews contentView = getStandardView(mBuilder.getBigPictureLayoutResource()); RemoteViews contentView = getStandardView(mBuilder.getBigPictureLayoutResource());
if (mSummaryTextSet) { if (mSummaryTextSet) {
contentView.setTextViewText(R.id.text, mBuilder.processLegacyText(mSummaryText)); contentView.setTextViewText(R.id.text, mBuilder.processTextSpans(
mBuilder.processLegacyText(mSummaryText)));
mBuilder.setTextViewColorSecondary(contentView, R.id.text); mBuilder.setTextViewColorSecondary(contentView, R.id.text);
contentView.setViewVisibility(R.id.text, View.VISIBLE); contentView.setViewVisibility(R.id.text, View.VISIBLE);
} }
@@ -5864,7 +5881,7 @@ public class Notification implements Parcelable
static void applyBigTextContentView(Builder builder, static void applyBigTextContentView(Builder builder,
RemoteViews contentView, CharSequence bigTextText) { RemoteViews contentView, CharSequence bigTextText) {
contentView.setTextViewText(R.id.big_text, bigTextText); contentView.setTextViewText(R.id.big_text, builder.processTextSpans(bigTextText));
builder.setTextViewColorSecondary(contentView, R.id.big_text); builder.setTextViewColorSecondary(contentView, R.id.big_text);
contentView.setViewVisibility(R.id.big_text, contentView.setViewVisibility(R.id.big_text,
TextUtils.isEmpty(bigTextText) ? View.GONE : View.VISIBLE); TextUtils.isEmpty(bigTextText) ? View.GONE : View.VISIBLE);
@@ -6199,7 +6216,8 @@ public class Notification implements Parcelable
int rowId = rowIds[i]; int rowId = rowIds[i];
contentView.setViewVisibility(rowId, View.VISIBLE); contentView.setViewVisibility(rowId, View.VISIBLE);
contentView.setTextViewText(rowId, makeMessageLine(m, mBuilder)); contentView.setTextViewText(rowId, mBuilder.processTextSpans(
makeMessageLine(m, mBuilder)));
mBuilder.setTextViewColorSecondary(contentView, rowId); mBuilder.setTextViewColorSecondary(contentView, rowId);
if (contractedMessage == m) { if (contractedMessage == m) {
@@ -6565,7 +6583,8 @@ public class Notification implements Parcelable
CharSequence str = mTexts.get(i); CharSequence str = mTexts.get(i);
if (!TextUtils.isEmpty(str)) { if (!TextUtils.isEmpty(str)) {
contentView.setViewVisibility(rowIds[i], View.VISIBLE); contentView.setViewVisibility(rowIds[i], View.VISIBLE);
contentView.setTextViewText(rowIds[i], mBuilder.processLegacyText(str)); contentView.setTextViewText(rowIds[i],
mBuilder.processTextSpans(mBuilder.processLegacyText(str)));
mBuilder.setTextViewColorSecondary(contentView, rowIds[i]); mBuilder.setTextViewColorSecondary(contentView, rowIds[i]);
contentView.setViewPadding(rowIds[i], 0, topPadding, 0, 0); contentView.setViewPadding(rowIds[i], 0, topPadding, 0, 0);
handleInboxImageMargin(contentView, rowIds[i], first); handleInboxImageMargin(contentView, rowIds[i], first);