diff options
2 files changed, 20 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index 6b9567dd9d8a..b087a2921420 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -1061,6 +1061,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView } public void setDismissed(boolean fromAccessibility) { + setLongPressListener(null); mDismissed = true; mGroupParentWhenDismissed = mNotificationParent; mRefocusOnDismiss = fromAccessibility; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java index 231a186686a0..af29ab47886c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ExpandableNotificationRowTest.java @@ -18,7 +18,9 @@ package com.android.systemui.statusbar; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -32,6 +34,7 @@ import android.view.NotificationHeaderView; import android.view.View; import com.android.systemui.SysuiTestCase; +import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin; import com.android.systemui.statusbar.notification.AboveShelfChangedListener; import com.android.systemui.statusbar.stack.NotificationChildrenContainer; @@ -159,6 +162,22 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { } @Test + public void testSetDismissed_longPressListenerRemoved() { + ExpandableNotificationRow.LongPressListener listener = + mock(ExpandableNotificationRow.LongPressListener.class); + mGroup.setLongPressListener(listener); + mGroup.doLongClickCallback(0,0); + verify(listener, times(1)).onLongPress(eq(mGroup), eq(0), eq(0), + any(NotificationMenuRowPlugin.MenuItem.class)); + reset(listener); + + mGroup.setDismissed(true); + mGroup.doLongClickCallback(0,0); + verify(listener, times(0)).onLongPress(eq(mGroup), eq(0), eq(0), + any(NotificationMenuRowPlugin.MenuItem.class)); + } + + @Test public void testShowAppOps_noHeader() { // public notification is custom layout - no header mGroup.setSensitive(true, true); |