Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36c32d2a authored by Ibrahim Yilmaz's avatar Ibrahim Yilmaz Committed by Android (Google) Code Review
Browse files

Merge "[ENR] Use EntryAdapter in isPromotedOngoing" into main

parents 96c898ba 7699d3d0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -113,6 +113,10 @@ class BundleEntryAdapter(val entry: BundleEntry) : EntryAdapter {
        return false
    }

    override fun isPromotedOngoing(): Boolean {
        return false
    }

    override fun isFullScreenCapable(): Boolean {
        return false
    }
+5 −0
Original line number Diff line number Diff line
@@ -132,6 +132,11 @@ public interface EntryAdapter {

    boolean isAmbient();

    /**
     * Returns whether this row represents promoted ongoing notification.
     */
    boolean isPromotedOngoing();

    default boolean isFullScreenCapable() {
        return false;
    }
+4 −0
Original line number Diff line number Diff line
@@ -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
    }
+12 −5
Original line number Diff line number Diff line
@@ -3258,13 +3258,20 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
            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();
        }
    }

    private boolean isPromotedNotificationExpanded(boolean allowOnKeyguard) {
        // public view in non group notifications is always collapsed.
+31 −18
Original line number Diff line number Diff line
@@ -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);