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

Commit 3e69219a authored by omarmt's avatar omarmt Committed by Omar Miatello
Browse files

Invalidate NotificationChildrenContainer whenever...

Invalidate NotificationChildrenContainer whenever NotificationHeaderViewWrapper.applyRoundnessAndInvalidate()

Test: manual test
Bug: 257000427
Change-Id: I8ce4567adc89552338fa6729320849fcf0b3b41c
parent 446cb95a
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -71,6 +71,8 @@ public class NotificationHeaderViewWrapper extends NotificationViewWrapper imple
    private View mFeedbackIcon;
    private boolean mIsLowPriority;
    private boolean mTransformLowPriorityTitle;
    private boolean mUseRoundnessSourceTypes;
    private RoundnessChangedListener mRoundnessChangedListener;

    protected NotificationHeaderViewWrapper(Context ctx, View view, ExpandableNotificationRow row) {
        super(ctx, view, row);
@@ -117,6 +119,20 @@ public class NotificationHeaderViewWrapper extends NotificationViewWrapper imple
        return mRoundableState;
    }

    @Override
    public void applyRoundnessAndInvalidate() {
        if (mUseRoundnessSourceTypes && mRoundnessChangedListener != null) {
            // We cannot apply the rounded corner to this View, so our parents (in drawChild()) will
            // clip our canvas. So we should invalidate our parent.
            mRoundnessChangedListener.applyRoundnessAndInvalidate();
        }
        Roundable.super.applyRoundnessAndInvalidate();
    }

    public void setOnRoundnessChangedListener(RoundnessChangedListener listener) {
        mRoundnessChangedListener = listener;
    }

    protected void resolveHeaderViews() {
        mIcon = mView.findViewById(com.android.internal.R.id.icon);
        mHeaderText = mView.findViewById(com.android.internal.R.id.header_text);
@@ -344,6 +360,15 @@ public class NotificationHeaderViewWrapper extends NotificationViewWrapper imple
        }
    }

    /**
     * Enable the support for rounded corner based on the SourceType
     *
     * @param enabled true if is supported
     */
    public void useRoundnessSourceTypes(boolean enabled) {
        mUseRoundnessSourceTypes = enabled;
    }

    /**
     * Interface that handle the Roundness changes
     */
+10 −0
Original line number Diff line number Diff line
@@ -396,6 +396,10 @@ public class NotificationChildrenContainer extends ViewGroup
                            getContext(),
                            mNotificationHeader,
                            mContainingNotification);
            mNotificationHeaderWrapper.useRoundnessSourceTypes(mUseRoundnessSourceTypes);
            if (mUseRoundnessSourceTypes) {
                mNotificationHeaderWrapper.setOnRoundnessChangedListener(this::invalidate);
            }
            addView(mNotificationHeader, 0);
            invalidate();
        } else {
@@ -433,6 +437,12 @@ public class NotificationChildrenContainer extends ViewGroup
                                getContext(),
                                mNotificationHeaderLowPriority,
                                mContainingNotification);
                mNotificationHeaderWrapperLowPriority.useRoundnessSourceTypes(
                        mUseRoundnessSourceTypes
                );
                if (mUseRoundnessSourceTypes) {
                    mNotificationHeaderWrapper.setOnRoundnessChangedListener(this::invalidate);
                }
                addView(mNotificationHeaderLowPriority, 0);
                invalidate();
            } else {