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

Commit f3895a1d authored by omarmt's avatar omarmt
Browse files

NotificationChildrenContainer apply the roundness on NotificationHeaderViewWrapper too

Test: atest NotificationChildrenContainerTest
Test: Checking the roundness behavior by disabling the parent (ExpandableNotificationRow) clipping: I override childNeedsClipping() and if (child == mChildrenContainer) return false
Bug: 263822538
Change-Id: I6b08703c4fcf86ca0e939e8adf640053a297f9ca
parent f2b5978c
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1431,6 +1431,22 @@ public class NotificationChildrenContainer extends ViewGroup
    @Override
    public void applyRoundnessAndInvalidate() {
        boolean last = true;
        if (mUseRoundnessSourceTypes) {
            if (mNotificationHeaderWrapper != null) {
                mNotificationHeaderWrapper.requestTopRoundness(
                        /* value = */ getTopRoundness(),
                        /* sourceType = */ FROM_PARENT,
                        /* animate = */ false
                );
            }
            if (mNotificationHeaderWrapperLowPriority != null) {
                mNotificationHeaderWrapperLowPriority.requestTopRoundness(
                        /* value = */ getTopRoundness(),
                        /* sourceType = */ FROM_PARENT,
                        /* animate = */ false
                );
            }
        }
        for (int i = mAttachedChildren.size() - 1; i >= 0; i--) {
            ExpandableNotificationRow child = mAttachedChildren.get(i);
            if (child.getVisibility() == View.GONE) {
+26 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.statusbar.notification.LegacySourceType;
import com.android.systemui.statusbar.notification.SourceType;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationHeaderViewWrapper;

import org.junit.Assert;
import org.junit.Before;
@@ -216,4 +217,29 @@ public class NotificationChildrenContainerTest extends SysuiTestCase {
        Assert.assertEquals(1f, mChildrenContainer.getBottomRoundness(), 0.001f);
        Assert.assertEquals(1f, notificationRow.getBottomRoundness(), 0.001f);
    }

    @Test
    public void applyRoundnessAndInvalidate_should_be_immediately_applied_on_header() {
        mChildrenContainer.useRoundnessSourceTypes(true);

        NotificationHeaderViewWrapper header = mChildrenContainer.getNotificationHeaderWrapper();
        Assert.assertEquals(0f, header.getTopRoundness(), 0.001f);

        mChildrenContainer.requestTopRoundness(1f, SourceType.from(""), false);

        Assert.assertEquals(1f, header.getTopRoundness(), 0.001f);
    }

    @Test
    public void applyRoundnessAndInvalidate_should_be_immediately_applied_on_headerLowPriority() {
        mChildrenContainer.useRoundnessSourceTypes(true);
        mChildrenContainer.setIsLowPriority(true);

        NotificationHeaderViewWrapper header = mChildrenContainer.getNotificationHeaderWrapper();
        Assert.assertEquals(0f, header.getTopRoundness(), 0.001f);

        mChildrenContainer.requestTopRoundness(1f, SourceType.from(""), false);

        Assert.assertEquals(1f, header.getTopRoundness(), 0.001f);
    }
}