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
This commit is contained in:
omarmt
2023-01-09 15:13:15 +00:00
parent f2b5978c5c
commit f3895a1d3a
2 changed files with 42 additions and 0 deletions

View File

@@ -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) {

View File

@@ -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);
}
}