Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32906bfb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Correct colors on forcibly decorated custom notifications" into sc-dev

parents de6aadf2 e0bbf6b6
Loading
Loading
Loading
Loading
+25 −7
Original line number Diff line number Diff line
@@ -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.
+3 −0
Original line number Diff line number Diff line
@@ -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);