diff options
5 files changed, 60 insertions, 1 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapterTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapterTest.kt index faafa073be4c..1018ded72783 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapterTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapterTest.kt @@ -41,6 +41,7 @@ import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito +import org.mockito.Mockito.mock import org.mockito.Mockito.verify @SmallTest @@ -380,4 +381,36 @@ class NotificationEntryAdapterTest : SysuiTestCase() { underTest.onNotificationActionClicked() verify(kosmos.mockNotificationActionClickManager).onNotificationActionClicked(entry) } + + @Test + @EnableFlags(NotificationBundleUi.FLAG_NAME) + fun getDismissState() { + val notification: Notification = + Notification.Builder(mContext, "").setSmallIcon(R.drawable.ic_person).build() + + val entry = NotificationEntryBuilder().setNotification(notification).build() + entry.dismissState = NotificationEntry.DismissState.PARENT_DISMISSED + + underTest = factory.create(entry) as NotificationEntryAdapter + + assertThat(underTest.dismissState).isEqualTo(entry.dismissState) + } + + @Test + @EnableFlags(NotificationBundleUi.FLAG_NAME) + fun onEntryClicked() { + val notification: Notification = + Notification.Builder(mContext, "") + .setSmallIcon(R.drawable.ic_person) + .addAction(mock(Notification.Action::class.java)) + .build() + val entry = NotificationEntryBuilder().setNotification(notification).build() + val row = mock(ExpandableNotificationRow::class.java) + + underTest = factory.create(entry) as NotificationEntryAdapter + + + underTest.onEntryClicked(row) + verify(kosmos.mockNotificationActivityStarter).onNotificationClicked(entry, row) + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntryAdapter.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntryAdapter.kt index b1a26af336d8..1fc8efdcf24a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntryAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntryAdapter.kt @@ -130,6 +130,16 @@ class BundleEntryAdapter(val entry: BundleEntry) : EntryAdapter { // do nothing. these have no actions Log.wtf(TAG, "onNotificationActionClicked() called") } + + override fun getDismissState(): NotificationEntry.DismissState { + // TODO(b/394483200): setDismissState is only called in NotifCollection so it does not + // work on bundles yet + return NotificationEntry.DismissState.NOT_DISMISSED + } + + override fun onEntryClicked(row: ExpandableNotificationRow) { + // TODO(b/396446620): should anything happen when you click on a bundle? + } } private const val TAG = "BundleEntryAdapter" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java index 4299825bd5e3..47ffe1030eff 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java @@ -150,5 +150,9 @@ public interface EntryAdapter { * Processes a click on a notification action */ void onNotificationActionClicked(); + + NotificationEntry.DismissState getDismissState(); + + void onEntryClicked(ExpandableNotificationRow row); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapter.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapter.kt index 345b6aae9673..f78a5ddd3982 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapter.kt @@ -152,4 +152,12 @@ class NotificationEntryAdapter( override fun onNotificationActionClicked() { notificationActionClickManager.onNotificationActionClicked(entry) } + + override fun getDismissState(): NotificationEntry.DismissState { + return entry.dismissState + } + + override fun onEntryClicked(row: ExpandableNotificationRow) { + notificationActivityStarter.onNotificationClicked(entry, row) + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java index 5160b909fd6a..1a76d5d9d9e4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java @@ -1786,7 +1786,11 @@ public class ExpandableNotificationRow extends ActivatableNotificationView /** @return true if the User has dismissed this notif's parent */ public boolean isParentDismissed() { - return getEntry().getDismissState() == PARENT_DISMISSED; + if (NotificationBundleUi.isEnabled()) { + return getEntryAdapter().getDismissState() == PARENT_DISMISSED; + } else { + return getEntryLegacy().getDismissState() == PARENT_DISMISSED; + } } @Override |