Merge "Fix notifications wrong corners after "clear all"" into udc-dev

This commit is contained in:
Omar Miatello
2023-06-30 08:50:53 +00:00
committed by Android (Google) Code Review
2 changed files with 35 additions and 2 deletions

View File

@@ -411,7 +411,8 @@ public class NotificationStackScrollLayoutController {
} }
}; };
private final NotificationSwipeHelper.NotificationCallback mNotificationCallback = @VisibleForTesting
final NotificationSwipeHelper.NotificationCallback mNotificationCallback =
new NotificationSwipeHelper.NotificationCallback() { new NotificationSwipeHelper.NotificationCallback() {
@Override @Override
@@ -470,10 +471,11 @@ public class NotificationStackScrollLayoutController {
*/ */
public void handleChildViewDismissed(View view) { public void handleChildViewDismissed(View view) {
// The View needs to clean up the Swipe states, e.g. roundness.
mView.onSwipeEnd();
if (mView.getClearAllInProgress()) { if (mView.getClearAllInProgress()) {
return; return;
} }
mView.onSwipeEnd();
if (view instanceof ExpandableNotificationRow) { if (view instanceof ExpandableNotificationRow) {
ExpandableNotificationRow row = (ExpandableNotificationRow) view; ExpandableNotificationRow row = (ExpandableNotificationRow) view;
if (row.isHeadsUp()) { if (row.isHeadsUp()) {

View File

@@ -74,6 +74,7 @@ import com.android.systemui.statusbar.notification.collection.render.SectionHead
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager; import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController.NotificationPanelEvent; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController.NotificationPanelEvent;
import com.android.systemui.statusbar.notification.stack.NotificationSwipeHelper.NotificationCallback;
import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationListViewModel; import com.android.systemui.statusbar.notification.stack.ui.viewmodel.NotificationListViewModel;
import com.android.systemui.statusbar.phone.CentralSurfaces; import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone; import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
@@ -338,6 +339,36 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase {
MetricsProto.MetricsEvent.TYPE_ACTION)); MetricsProto.MetricsEvent.TYPE_ACTION));
} }
@Test
public void callSwipeCallbacksDuringClearAll() {
initController(/* viewIsAttached= */ true);
ExpandableNotificationRow row = mock(ExpandableNotificationRow.class);
NotificationCallback notificationCallback = mController.mNotificationCallback;
when(mNotificationStackScrollLayout.getClearAllInProgress()).thenReturn(true);
notificationCallback.onBeginDrag(row);
verify(mNotificationStackScrollLayout).onSwipeBegin(row);
notificationCallback.handleChildViewDismissed(row);
verify(mNotificationStackScrollLayout).onSwipeEnd();
}
@Test
public void callSwipeCallbacksDuringClearNotification() {
initController(/* viewIsAttached= */ true);
ExpandableNotificationRow row = mock(ExpandableNotificationRow.class);
NotificationCallback notificationCallback = mController.mNotificationCallback;
when(mNotificationStackScrollLayout.getClearAllInProgress()).thenReturn(false);
notificationCallback.onBeginDrag(row);
verify(mNotificationStackScrollLayout).onSwipeBegin(row);
notificationCallback.handleChildViewDismissed(row);
verify(mNotificationStackScrollLayout).onSwipeEnd();
}
@Test @Test
public void testOnMenuClickedLogging() { public void testOnMenuClickedLogging() {
ExpandableNotificationRow row = mock(ExpandableNotificationRow.class, RETURNS_DEEP_STUBS); ExpandableNotificationRow row = mock(ExpandableNotificationRow.class, RETURNS_DEEP_STUBS);