diff options
| author | 2025-03-11 07:49:25 -0700 | |
|---|---|---|
| committer | 2025-03-11 07:49:25 -0700 | |
| commit | 36c32d2a27eabb342b334434d379d0119c65fd22 (patch) | |
| tree | dcf5ec4c7854f6261f75b63b840df95f2d8671b8 | |
| parent | 96c898bac3194640666f56656a3cc501d9903f08 (diff) | |
| parent | 7699d3d02492e4f1732acfd4191a871aff4a11e6 (diff) | |
Merge "[ENR] Use EntryAdapter in isPromotedOngoing" into main
5 files changed, 56 insertions, 23 deletions
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 26c302bf6409..b1a26af336d8 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 @@ -113,6 +113,10 @@ class BundleEntryAdapter(val entry: BundleEntry) : EntryAdapter { return false } + override fun isPromotedOngoing(): Boolean { + return false + } + override fun isFullScreenCapable(): Boolean { return false } 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 3118ce56ac69..4299825bd5e3 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 @@ -132,6 +132,11 @@ public interface EntryAdapter { boolean isAmbient(); + /** + * Returns whether this row represents promoted ongoing notification. + */ + boolean isPromotedOngoing(); + default boolean isFullScreenCapable() { return false; } 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 1168c647c26a..345b6aae9673 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 @@ -137,6 +137,10 @@ class NotificationEntryAdapter( return entry.ranking.isAmbient } + override fun isPromotedOngoing(): Boolean { + return entry.isPromotedOngoing + } + override fun isFullScreenCapable(): Boolean { return entry.sbn.notification.fullScreenIntent != null } 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 d1311fa80566..76830646587d 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 @@ -3258,12 +3258,19 @@ public class ExpandableNotificationRow extends ActivatableNotificationView return false; } - final NotificationEntry entry = mEntry; - if (entry == null) { - return false; + if (NotificationBundleUi.isEnabled()) { + final EntryAdapter entryAdapter = mEntryAdapter; + if (entryAdapter == null) { + return false; + } + return entryAdapter.isPromotedOngoing(); + } else { + final NotificationEntry entry = mEntry; + if (entry == null) { + return false; + } + return entry.isPromotedOngoing(); } - - return entry.isPromotedOngoing(); } private boolean isPromotedNotificationExpanded(boolean allowOnKeyguard) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java index 84f39be2eeed..00ee893e0e4d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java @@ -61,6 +61,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.internal.R; +import com.android.internal.logging.MetricsLogger; import com.android.internal.widget.CachingIconView; import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestableContext; @@ -71,12 +72,18 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.chips.notification.shared.StatusBarNotifChips; import com.android.systemui.statusbar.notification.AboveShelfChangedListener; import com.android.systemui.statusbar.notification.FeedbackIcon; +import com.android.systemui.statusbar.notification.NotificationActivityStarter; import com.android.systemui.statusbar.notification.SourceType; +import com.android.systemui.statusbar.notification.collection.EntryAdapter; import com.android.systemui.statusbar.notification.collection.NotificationEntry; +import com.android.systemui.statusbar.notification.collection.NotificationEntryAdapter; +import com.android.systemui.statusbar.notification.collection.coordinator.VisualStabilityCoordinator; import com.android.systemui.statusbar.notification.headsup.PinnedStatus; +import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier; import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUi; import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUiForceExpanded; import com.android.systemui.statusbar.notification.row.ExpandableView.OnHeightChangedListener; +import com.android.systemui.statusbar.notification.row.icon.NotificationIconStyleProvider; import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper; import com.android.systemui.statusbar.notification.shared.NotificationBundleUi; import com.android.systemui.statusbar.notification.shared.NotificationContentAlphaOptimization; @@ -942,9 +949,7 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { public void isExpanded_sensitivePromotedNotification_notExpanded() throws Exception { // GIVEN final ExpandableNotificationRow row = mNotificationTestHelper.createRow(); - NotificationEntry entry = mock(NotificationEntry.class); - when(entry.isPromotedOngoing()).thenReturn(true); - row.setEntry(entry); + setRowPromotedOngoing(row); row.setSensitive(/* sensitive= */true, /* hideSensitive= */false); row.setHideSensitiveForIntrinsicHeight(/* hideSensitive= */true); @@ -957,9 +962,7 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { public void isExpanded_promotedNotificationNotOnKeyguard_expanded() throws Exception { // GIVEN final ExpandableNotificationRow row = mNotificationTestHelper.createRow(); - NotificationEntry entry = mock(NotificationEntry.class); - when(entry.isPromotedOngoing()).thenReturn(true); - row.setEntry(entry); + setRowPromotedOngoing(row); row.setOnKeyguard(false); // THEN @@ -971,9 +974,7 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { public void isExpanded_promotedNotificationAllowOnKeyguard_expanded() throws Exception { // GIVEN final ExpandableNotificationRow row = mNotificationTestHelper.createRow(); - NotificationEntry entry = mock(NotificationEntry.class); - when(entry.isPromotedOngoing()).thenReturn(true); - row.setEntry(entry); + setRowPromotedOngoing(row); row.setOnKeyguard(true); // THEN @@ -986,9 +987,7 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { throws Exception { // GIVEN final ExpandableNotificationRow row = mNotificationTestHelper.createRow(); - NotificationEntry entry = mock(NotificationEntry.class); - when(entry.isPromotedOngoing()).thenReturn(true); - row.setEntry(entry); + setRowPromotedOngoing(row); row.setOnKeyguard(true); row.setIgnoreLockscreenConstraints(true); @@ -996,15 +995,31 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { assertThat(row.isExpanded()).isTrue(); } + private static void setRowPromotedOngoing(ExpandableNotificationRow row) { + final NotificationEntry entry = mock(NotificationEntry.class); + when(entry.isPromotedOngoing()).thenReturn(true); + if (NotificationBundleUi.isEnabled()) { + final EntryAdapter entryAdapter = new NotificationEntryAdapter( + mock(NotificationActivityStarter.class), + mock(MetricsLogger.class), + mock(PeopleNotificationIdentifier.class), + mock(NotificationIconStyleProvider.class), + mock(VisualStabilityCoordinator.class), + mock(NotificationActionClickManager.class), + entry); + row.setEntryAdapter(entryAdapter); + } else { + row.setEntry(entry); + } + } + @Test @EnableFlags({PromotedNotificationUi.FLAG_NAME, PromotedNotificationUiForceExpanded.FLAG_NAME}) public void isExpanded_promotedNotificationSaveSpaceOnLockScreen_notExpanded() throws Exception { // GIVEN final ExpandableNotificationRow row = mNotificationTestHelper.createRow(); - NotificationEntry entry = mock(NotificationEntry.class); - when(entry.isPromotedOngoing()).thenReturn(true); - row.setEntry(entry); + setRowPromotedOngoing(row); row.setOnKeyguard(true); row.setSaveSpaceOnLockscreen(true); @@ -1018,9 +1033,7 @@ public class ExpandableNotificationRowTest extends SysuiTestCase { throws Exception { // GIVEN final ExpandableNotificationRow row = mNotificationTestHelper.createRow(); - NotificationEntry entry = mock(NotificationEntry.class); - when(entry.isPromotedOngoing()).thenReturn(true); - row.setEntry(entry); + setRowPromotedOngoing(row); row.setOnKeyguard(true); row.setSaveSpaceOnLockscreen(false); |