summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapterTest.kt33
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/BundleEntryAdapter.kt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/EntryAdapter.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntryAdapter.kt8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java6
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