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;
|
||||
|
||||
/**
|
||||
* 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,
|
||||
ExpandableNotificationRow row) {
|
||||
super(ctx, view, row);
|
||||
@@ -36,13 +60,7 @@ public class NotificationDecoratedCustomViewWrapper extends NotificationTemplate
|
||||
|
||||
@Override
|
||||
public void onContentUpdated(ExpandableNotificationRow row) {
|
||||
ViewGroup container = mView.findViewById(
|
||||
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);
|
||||
}
|
||||
mWrappedView = getWrappedCustomView(mView);
|
||||
|
||||
// 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.
|
||||
|
||||
@@ -80,6 +80,9 @@ public abstract class NotificationViewWrapper implements TransformableView {
|
||||
if (Notification.DecoratedCustomViewStyle.class.equals(style)) {
|
||||
return new NotificationDecoratedCustomViewWrapper(ctx, v, row);
|
||||
}
|
||||
if (NotificationDecoratedCustomViewWrapper.hasCustomView(v)) {
|
||||
return new NotificationDecoratedCustomViewWrapper(ctx, v, row);
|
||||
}
|
||||
return new NotificationTemplateViewWrapper(ctx, v, row);
|
||||
} else if (v instanceof NotificationHeaderView) {
|
||||
return new NotificationHeaderViewWrapper(ctx, v, row);
|
||||
|
||||
Reference in New Issue
Block a user