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

Commit e0bbf6b6 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

Correct colors on forcibly decorated custom notifications

Test: manual
Fixes: 179415446
Change-Id: I9bebd087acfdcf4ffda8ff90deb8c1e806f51106
parent 2d16f0aa
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);