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

Commit aa3e5885 authored by Julia Tuttle's avatar Julia Tuttle
Browse files

Check refactor flag state in old and new code

Bug: 261728888
Test: atest NotificationInterruptStateProviderWrapperTest
Test: atest VisualInterruptionDecisionProviderImplTest
Flag: ACONFIG com.android.systemui.visual_interruptions_refactor DEVELOPMENT
Change-Id: I4654eae6a4a5d8d2765dbe9e59b5ecb5561faacc
parent ed0ecfcb
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@ import com.android.systemui.statusbar.notification.interruption.VisualInterrupti
class NotificationInterruptStateProviderWrapper(
    private val wrapped: NotificationInterruptStateProvider
) : VisualInterruptionDecisionProvider {
    init {
        VisualInterruptionRefactor.assertInLegacyMode()
    }

    @VisibleForTesting
    enum class DecisionImpl(override val shouldInterrupt: Boolean) : Decision {
+4 −0
Original line number Diff line number Diff line
@@ -60,6 +60,10 @@ constructor(
    private val uiEventLogger: UiEventLogger,
    private val userTracker: UserTracker,
) : VisualInterruptionDecisionProvider {
    init {
        check(!VisualInterruptionRefactor.isUnexpectedlyInLegacyMode())
    }

    interface Loggable {
        val uiEventId: UiEventEnum?
        val eventLogData: EventLogData?
+5 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification.interruption

import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.Flags
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider.FullScreenIntentDecision
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider.FullScreenIntentDecision.FSI_DEVICE_NOT_INTERACTIVE
@@ -35,6 +36,10 @@ import org.junit.runner.RunWith
@SmallTest
@RunWith(AndroidTestingRunner::class)
class NotificationInterruptStateProviderWrapperTest : VisualInterruptionDecisionProviderTestBase() {
    init {
        setFlagsRule.disableFlags(Flags.FLAG_VISUAL_INTERRUPTIONS_REFACTOR)
    }

    override val provider by lazy {
        NotificationInterruptStateProviderWrapper(
            NotificationInterruptStateProviderImpl(
+5 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification.interruption

import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.Flags
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.interruption.VisualInterruptionType.BUBBLE
import com.android.systemui.statusbar.notification.interruption.VisualInterruptionType.PEEK
@@ -28,6 +29,10 @@ import org.junit.runner.RunWith
@SmallTest
@RunWith(AndroidTestingRunner::class)
class VisualInterruptionDecisionProviderImplTest : VisualInterruptionDecisionProviderTestBase() {
    init {
        setFlagsRule.enableFlags(Flags.FLAG_VISUAL_INTERRUPTIONS_REFACTOR)
    }

    override val provider by lazy {
        VisualInterruptionDecisionProviderImpl(
            ambientDisplayConfiguration,
+6 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import android.graphics.drawable.Icon
import android.hardware.display.FakeAmbientDisplayConfiguration
import android.os.Looper
import android.os.PowerManager
import android.platform.test.flag.junit.SetFlagsRule
import android.provider.Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED
import android.provider.Settings.Global.HEADS_UP_OFF
import android.provider.Settings.Global.HEADS_UP_ON
@@ -83,10 +84,15 @@ import junit.framework.Assert.assertFalse
import junit.framework.Assert.assertTrue
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.mockito.Mockito.`when` as whenever

abstract class VisualInterruptionDecisionProviderTestBase : SysuiTestCase() {
    @JvmField
    @Rule
    val setFlagsRule = SetFlagsRule(SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT)

    private val fakeLogBuffer =
        LogBuffer(
            name = "FakeLog",