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() {
@Override
@@ -470,10 +471,11 @@ public class NotificationStackScrollLayoutController {
*/
public void handleChildViewDismissed(View view) {
// The View needs to clean up the Swipe states, e.g. roundness.
mView.onSwipeEnd();
if (mView.getClearAllInProgress()) {
return;
}
mView.onSwipeEnd();
if (view instanceof ExpandableNotificationRow) {
ExpandableNotificationRow row = (ExpandableNotificationRow) view;
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.NotificationGutsManager;
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.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
@@ -338,6 +339,36 @@ public class NotificationStackScrollLayoutControllerTest extends SysuiTestCase {
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
public void testOnMenuClickedLogging() {
ExpandableNotificationRow row = mock(ExpandableNotificationRow.class, RETURNS_DEEP_STUBS);