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

Commit 815fdd84 authored by Lyn Han's avatar Lyn Han Committed by Android (Google) Code Review
Browse files

Merge "Update all non-bundle sectioners to check isClassified" into main

parents 1d34ea38 e5f4c3af
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.systemui.statusbar.notification.collection.coordinator

import android.app.Notification
import android.app.Notification.FLAG_FOREGROUND_SERVICE
import android.app.NotificationChannel.SYSTEM_RESERVED_IDS
import android.app.NotificationManager
import android.app.PendingIntent
import android.app.Person
@@ -45,6 +46,7 @@ import com.android.systemui.statusbar.notification.collection.buildOngoingCallEn
import com.android.systemui.statusbar.notification.collection.buildPromotedOngoingEntry
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.makeClassifiedConversation
import com.android.systemui.statusbar.notification.collection.notifPipeline
import com.android.systemui.statusbar.notification.domain.interactor.renderNotificationListInteractor
import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUi
@@ -101,6 +103,15 @@ class ColorizedFgsCoordinatorTest : SysuiTestCase() {
        assertTrue(sectioner.isInSection(entry))
    }

    @Test
    fun testSectioner_reject_classifiedConversation() {
        kosmos.runTest {
            for (id in SYSTEM_RESERVED_IDS) {
                assertFalse(sectioner.isInSection(kosmos.makeClassifiedConversation(id)))
            }
        }
    }

    @Test
    fun testDiscludeFGSInSection_importanceMin() {
        // GIVEN the notification represents a colorized foreground service with min importance
+10 −19
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.OnBefo
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifComparator
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.makeClassifiedConversation
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider
import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManagerImpl
import com.android.systemui.statusbar.notification.collection.render.NodeController
@@ -50,6 +51,7 @@ import com.android.systemui.statusbar.notification.people.PeopleNotificationIden
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier.Companion.TYPE_NON_PERSON
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier.Companion.TYPE_PERSON
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifierImpl
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.withArgCaptor
import com.google.common.truth.Truth.assertThat
@@ -69,6 +71,8 @@ import org.mockito.kotlin.mock
@RunWith(AndroidJUnit4::class)
@TestableLooper.RunWithLooper
class ConversationCoordinatorTest : SysuiTestCase() {
    private val kosmos = testKosmos()

    // captured listeners and pluggables:
    private lateinit var promoter: NotifPromoter
    private lateinit var peopleAlertingSectioner: NotifSectioner
@@ -125,10 +129,10 @@ class ConversationCoordinatorTest : SysuiTestCase() {
    }

    @Test
    fun testPrioritySectioner_doesNotClaim_classifiedConversation() {
    fun testPrioritySectioner_reject_classifiedConversation() {
        val sectioner = coordinator.priorityPeopleSectioner
        for (id in SYSTEM_RESERVED_IDS) {
            assertFalse(sectioner.isInSection(makeClassifiedConversation(id)))
            assertFalse(sectioner.isInSection(kosmos.makeClassifiedConversation(id)))
        }
    }

@@ -175,10 +179,10 @@ class ConversationCoordinatorTest : SysuiTestCase() {
    }

    @Test
    fun testAlertingSectioner_doesNotClaim_classifiedConversation() {
    fun testAlertingSectioner_reject_classifiedConversation() {
        val sectioner = coordinator.peopleAlertingSectioner
        for (id in SYSTEM_RESERVED_IDS) {
            assertFalse(sectioner.isInSection(makeClassifiedConversation(id)))
            assertFalse(sectioner.isInSection(kosmos.makeClassifiedConversation(id)))
        }
    }

@@ -203,10 +207,10 @@ class ConversationCoordinatorTest : SysuiTestCase() {

    @Test
    @DisableFlags(Flags.FLAG_SORT_SECTION_BY_TIME)
    fun testSilentSectioner_doesNotClaim_classifiedConversation() {
    fun testSilentSectioner_reject_classifiedConversation() {
        val sectioner = coordinator.peopleSilentSectioner
        for (id in SYSTEM_RESERVED_IDS) {
            assertFalse(sectioner.isInSection(makeClassifiedConversation(id)))
            assertFalse(sectioner.isInSection(kosmos.makeClassifiedConversation(id)))
        }
    }

@@ -306,17 +310,4 @@ class ConversationCoordinatorTest : SysuiTestCase() {
        assertEquals(type, peopleNotificationIdentifier.getPeopleNotificationType(entry))
        return entry
    }

    private fun makeClassifiedConversation(channelId: String): NotificationEntry {
        val channel = NotificationChannel(channelId, channelId, IMPORTANCE_LOW)
        val entry =
            NotificationEntryBuilder()
                .updateRanking {
                    it.setIsConversation(true)
                    it.setShortcutInfo(mock())
                    it.setChannel(channel)
                }
                .build()
        return entry
    }
}
+12 −1
Original line number Diff line number Diff line
@@ -17,7 +17,9 @@ package com.android.systemui.statusbar.notification.collection.coordinator

import android.app.Notification.GROUP_ALERT_ALL
import android.app.Notification.GROUP_ALERT_SUMMARY
import android.app.NotificationChannel
import android.app.NotificationChannel.SYSTEM_RESERVED_IDS
import android.app.NotificationManager.IMPORTANCE_LOW
import android.platform.test.annotations.EnableFlags
import android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION
import android.testing.TestableLooper.RunWithLooper
@@ -41,6 +43,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.OnBefo
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.mockNotifCollection
import com.android.systemui.statusbar.notification.collection.makeClassifiedConversation
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender.OnEndLifetimeExtensionCallback
@@ -75,6 +78,7 @@ import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyString
import org.mockito.BDDMockito.clearInvocations
import org.mockito.BDDMockito.given
import org.mockito.Mockito
import org.mockito.Mockito.never
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
@@ -363,7 +367,7 @@ class HeadsUpCoordinatorTest : SysuiTestCase() {
    }

    @Test
    fun testIncludeInSectionCurrentHUN() {
    fun testHeadsUpSectioner_accepts_currentHUN() {
        // GIVEN the current HUN is set to mEntry
        addHUN(entry)

@@ -374,6 +378,13 @@ class HeadsUpCoordinatorTest : SysuiTestCase() {
        )
    }

    @Test
    fun testHeadsUpSectioner_rejects_classifiedConversation() {
        for (id in SYSTEM_RESERVED_IDS) {
            assertFalse(notifSectioner.isInSection(kosmos.makeClassifiedConversation(id)))
        }
    }

    @Test
    fun testLifetimeExtendsCurrentHUN() {
        // GIVEN there is a HUN, mEntry
+32 −2
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@
package com.android.systemui.statusbar.notification.collection.coordinator

import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationChannel.SYSTEM_RESERVED_IDS
import android.app.NotificationManager.IMPORTANCE_DEFAULT
import android.app.NotificationManager.IMPORTANCE_LOW
import android.platform.test.annotations.EnableFlags
@@ -36,6 +38,7 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntryB
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeTransformGroupsListener
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.makeClassifiedConversation
import com.android.systemui.statusbar.notification.collection.modifyEntry
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
import com.android.systemui.statusbar.notification.data.repository.FakeHeadsUpRowRepository
@@ -55,6 +58,7 @@ import kotlinx.coroutines.test.TestCoroutineScheduler
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertFalse
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.argumentCaptor
@@ -81,7 +85,7 @@ class LockScreenMinimalismCoordinatorTest : SysuiTestCase() {
    private var statusBarState: StatusBarState = StatusBarState.KEYGUARD

    @Test
    fun topUnseenSectioner() {
    fun testTopUnseenSectioner() {
        val solo = NotificationEntryBuilder().setTag("solo").build()
        val child1 = NotificationEntryBuilder().setTag("child1").build()
        val child2 = NotificationEntryBuilder().setTag("child2").build()
@@ -121,7 +125,7 @@ class LockScreenMinimalismCoordinatorTest : SysuiTestCase() {
    }

    @Test
    fun topOngoingSectioner() {
    fun testTopOngoingSectioner() {
        val solo = NotificationEntryBuilder().setTag("solo").build()
        val child1 = NotificationEntryBuilder().setTag("child1").build()
        val child2 = NotificationEntryBuilder().setTag("child2").build()
@@ -206,6 +210,32 @@ class LockScreenMinimalismCoordinatorTest : SysuiTestCase() {
        }
    }

    @Test
    fun testTopOngoingSectioner_rejects_classifiedConversation() {
        runCoordinatorTest {
            for (id in SYSTEM_RESERVED_IDS) {
                assertFalse(
                    topOngoingSectioner.isInSection(
                        kosmos.makeClassifiedConversation(id)
                    )
                )
            }
        }
    }

    @Test
    fun testTopUnseenSectioner_rejects_classifiedConversation() {
        runCoordinatorTest {
            for (id in SYSTEM_RESERVED_IDS) {
                assertFalse(
                    topUnseenSectioner.isInSection(
                        kosmos.makeClassifiedConversation(id)
                    )
                )
            }
        }
    }

    @Test
    fun topOngoingIdentifier() {
        val solo1 = defaultEntryBuilder().setTag("solo1").setRank(1).build()
+23 −0
Original line number Diff line number Diff line
@@ -298,12 +298,27 @@ public class RankingCoordinatorTest extends SysuiTestCase {
        assertTrue(mSilentSectioner.isInSection(bundleEntry));
    }

    @Test
    public void testSilentSectioner_rejects_classified() {
        for (String id : SYSTEM_RESERVED_IDS) {
            assertFalse(mSilentSectioner.isInSection(makeClassifiedNotifEntry(id, IMPORTANCE_LOW)));
        }
    }

    @Test
    public void testMinimizedSectioner_rejectsBundle() {
        BundleEntry bundleEntry = new BundleEntry("testBundleKey");
        assertFalse(mMinimizedSectioner.isInSection(bundleEntry));
    }

    @Test
    public void testMinimizedSectioner_rejects_classified() {
        for (String id : SYSTEM_RESERVED_IDS) {
            assertFalse(mMinimizedSectioner.isInSection(
                    makeClassifiedNotifEntry(id, IMPORTANCE_LOW)));
        }
    }

    @Test
    public void testMinSection() {
        when(mHighPriorityProvider.isHighPriority(mEntry)).thenReturn(false);
@@ -359,6 +374,14 @@ public class RankingCoordinatorTest extends SysuiTestCase {
        }
    }

    @Test
    public void testAlertingSectioner_rejects_classified() {
        for (String id : SYSTEM_RESERVED_IDS) {
            assertFalse(
                    mAlertingSectioner.isInSection(makeClassifiedNotifEntry(id, IMPORTANCE_LOW)));
        }
    }

    @Test
    public void statusBarStateCallbackTest() {
        mStatusBarStateCallback.onDozeAmountChanged(1f, 1f);
Loading