Merge "Correct colors on forcibly decorated custom notifications" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
32906bfbbd
@@ -29,6 +29,30 @@ public class NotificationDecoratedCustomViewWrapper extends NotificationTemplate
|
|||||||
|
|
||||||
private View mWrappedView = null;
|
private View mWrappedView = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if the standard template contains a custom view, injected by Notification.Builder
|
||||||
|
*/
|
||||||
|
public static boolean hasCustomView(View v) {
|
||||||
|
return getWrappedCustomView(v) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static View getWrappedCustomView(View view) {
|
||||||
|
if (view == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
ViewGroup container = view.findViewById(
|
||||||
|
com.android.internal.R.id.notification_main_column);
|
||||||
|
if (container == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Integer childIndex = (Integer) container.getTag(
|
||||||
|
com.android.internal.R.id.notification_custom_view_index_tag);
|
||||||
|
if (childIndex == null || childIndex == -1) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return container.getChildAt(childIndex);
|
||||||
|
}
|
||||||
|
|
||||||
protected NotificationDecoratedCustomViewWrapper(Context ctx, View view,
|
protected NotificationDecoratedCustomViewWrapper(Context ctx, View view,
|
||||||
ExpandableNotificationRow row) {
|
ExpandableNotificationRow row) {
|
||||||
super(ctx, view, row);
|
super(ctx, view, row);
|
||||||
@@ -36,13 +60,7 @@ public class NotificationDecoratedCustomViewWrapper extends NotificationTemplate
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContentUpdated(ExpandableNotificationRow row) {
|
public void onContentUpdated(ExpandableNotificationRow row) {
|
||||||
ViewGroup container = mView.findViewById(
|
mWrappedView = getWrappedCustomView(mView);
|
||||||
com.android.internal.R.id.notification_main_column);
|
|
||||||
Integer childIndex = (Integer) container.getTag(
|
|
||||||
com.android.internal.R.id.notification_custom_view_index_tag);
|
|
||||||
if (childIndex != null && childIndex != -1) {
|
|
||||||
mWrappedView = container.getChildAt(childIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Custom views will most likely use just white or black as their text color.
|
// Custom views will most likely use just white or black as their text color.
|
||||||
// We need to scan through and replace these colors by Material NEXT colors.
|
// We need to scan through and replace these colors by Material NEXT colors.
|
||||||
|
|||||||
@@ -80,6 +80,9 @@ public abstract class NotificationViewWrapper implements TransformableView {
|
|||||||
if (Notification.DecoratedCustomViewStyle.class.equals(style)) {
|
if (Notification.DecoratedCustomViewStyle.class.equals(style)) {
|
||||||
return new NotificationDecoratedCustomViewWrapper(ctx, v, row);
|
return new NotificationDecoratedCustomViewWrapper(ctx, v, row);
|
||||||
}
|
}
|
||||||
|
if (NotificationDecoratedCustomViewWrapper.hasCustomView(v)) {
|
||||||
|
return new NotificationDecoratedCustomViewWrapper(ctx, v, row);
|
||||||
|
}
|
||||||
return new NotificationTemplateViewWrapper(ctx, v, row);
|
return new NotificationTemplateViewWrapper(ctx, v, row);
|
||||||
} else if (v instanceof NotificationHeaderView) {
|
} else if (v instanceof NotificationHeaderView) {
|
||||||
return new NotificationHeaderViewWrapper(ctx, v, row);
|
return new NotificationHeaderViewWrapper(ctx, v, row);
|
||||||
|
|||||||
Reference in New Issue
Block a user