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

Commit 588b6d62 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[Dual Shade] Replace most references to DualShade flag with the setting." into main

parents 4a623260 a1173cc0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -32,6 +32,11 @@ class FakeSecureSettingsRepository : SecureSettingsRepository {
        return intSetting(name, if (defaultValue) 1 else 0).map { it != 0 }
    }

    fun setBool(name: String, value: Boolean) {
        settings.value =
            settings.value.toMutableMap().apply { this[name] = (if (value) 1 else 0).toString() }
    }

    override suspend fun setInt(name: String, value: Int) {
        settings.value = settings.value.toMutableMap().apply { this[name] = value.toString() }
    }
+16 −58
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@

package com.android.systemui.communal.ui.viewmodel

import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.compose.animation.scene.Swipe
@@ -42,9 +40,9 @@ import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.SceneFamilies
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.shared.model.TransitionKeys.ToSplitShade
import com.android.systemui.shade.data.repository.fakeShadeRepository
import com.android.systemui.shade.shared.flag.DualShade
import com.android.systemui.shade.shared.model.ShadeMode
import com.android.systemui.shade.domain.interactor.enableDualShade
import com.android.systemui.shade.domain.interactor.enableSingleShade
import com.android.systemui.shade.domain.interactor.enableSplitShade
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import kotlin.test.Test
@@ -72,33 +70,21 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {
    }

    @Test
    @DisableFlags(DualShade.FLAG_NAME)
    fun actions_singleShade() =
        testScope.runTest {
            val actions by collectLastValue(underTest.actions)
            kosmos.enableSingleShade()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = true,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
@@ -106,34 +92,22 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableFlags(DualShade.FLAG_NAME)
    fun actions_splitShade() =
        testScope.runTest {
            val actions by collectLastValue(underTest.actions)
            kosmos.enableSplitShade()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down))
                .isEqualTo(UserActionResult(Scenes.Shade, ToSplitShade))

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = true,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
@@ -142,30 +116,22 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {
        }

    @Test
    @EnableFlags(DualShade.FLAG_NAME)
    fun actions_dualShade() =
        testScope.runTest {
            val actions by collectLastValue(underTest.actions)
            kosmos.enableDualShade()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Dual,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down))
                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Dual,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(isShadeTouchable = true, isDeviceUnlocked = true, shadeMode = ShadeMode.Dual)
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.End)).isEqualTo(UserActionResult(SceneFamilies.Home))
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
@@ -173,11 +139,7 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {
                .isEqualTo(UserActionResult.ShowOverlay(Overlays.NotificationsShade))
        }

    private fun TestScope.setUpState(
        isShadeTouchable: Boolean,
        isDeviceUnlocked: Boolean,
        shadeMode: ShadeMode,
    ) {
    private fun TestScope.setUpState(isShadeTouchable: Boolean, isDeviceUnlocked: Boolean) {
        if (isShadeTouchable) {
            kosmos.powerInteractor.setAwakeForTest()
        } else {
@@ -189,10 +151,6 @@ class CommunalUserActionsViewModelTest : SysuiTestCase() {
        } else {
            lockDevice()
        }

        if (shadeMode !is ShadeMode.Dual) {
            kosmos.fakeShadeRepository.setShadeLayoutWide(shadeMode is ShadeMode.Split)
        }
        runCurrent()
    }

+28 −102
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@

package com.android.systemui.dreams.ui.viewmodel

import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.compose.animation.scene.Swipe
@@ -42,9 +40,9 @@ import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.scene.shared.model.TransitionKeys.ToSplitShade
import com.android.systemui.shade.data.repository.fakeShadeRepository
import com.android.systemui.shade.shared.flag.DualShade
import com.android.systemui.shade.shared.model.ShadeMode
import com.android.systemui.shade.domain.interactor.enableDualShade
import com.android.systemui.shade.domain.interactor.enableSingleShade
import com.android.systemui.shade.domain.interactor.enableSplitShade
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import kotlin.test.Test
@@ -72,36 +70,24 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
    }

    @Test
    @DisableFlags(DualShade.FLAG_NAME)
    fun actions_communalNotAvailable_singleShade() =
        testScope.runTest {
            kosmos.enableSingleShade()
            kosmos.setCommunalAvailable(false)

            val actions by collectLastValue(underTest.actions)

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
            assertThat(actions?.get(Swipe.Start)).isNull()
            assertThat(actions?.get(Swipe.End)).isNull()

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = true,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
@@ -110,18 +96,14 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableFlags(DualShade.FLAG_NAME)
    fun actions_communalNotAvailable_splitShade() =
        testScope.runTest {
            kosmos.enableSplitShade()
            kosmos.setCommunalAvailable(false)

            val actions by collectLastValue(underTest.actions)

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down))
@@ -129,18 +111,10 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
            assertThat(actions?.get(Swipe.Start)).isNull()
            assertThat(actions?.get(Swipe.End)).isNull()

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = true,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
            assertThat(actions?.get(Swipe.Down))
@@ -150,18 +124,14 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
        }

    @Test
    @EnableFlags(DualShade.FLAG_NAME)
    fun actions_communalNotAvailable_dualShade() =
        testScope.runTest {
            kosmos.enableDualShade()
            kosmos.setCommunalAvailable(false)

            val actions by collectLastValue(underTest.actions)

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Dual,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down))
@@ -169,14 +139,10 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
            assertThat(actions?.get(Swipe.Start)).isNull()
            assertThat(actions?.get(Swipe.End)).isNull()

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Dual,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(isShadeTouchable = true, isDeviceUnlocked = true, shadeMode = ShadeMode.Dual)
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
            assertThat(actions?.get(Swipe.Down))
@@ -186,36 +152,24 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableFlags(DualShade.FLAG_NAME)
    fun actions_communalAvailable_singleShade() =
        testScope.runTest {
            kosmos.enableSingleShade()
            kosmos.setCommunalAvailable(true)

            val actions by collectLastValue(underTest.actions)

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
            assertThat(actions?.get(Swipe.End)).isNull()

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = true,
                shadeMode = ShadeMode.Single,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
            assertThat(actions?.get(Swipe.Down)).isEqualTo(UserActionResult(Scenes.Shade))
@@ -224,18 +178,14 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableFlags(DualShade.FLAG_NAME)
    fun actions_communalAvailable_splitShade() =
        testScope.runTest {
            kosmos.enableSplitShade()
            kosmos.setCommunalAvailable(true)

            val actions by collectLastValue(underTest.actions)

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down))
@@ -243,18 +193,10 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
            assertThat(actions?.get(Swipe.End)).isNull()

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = true,
                shadeMode = ShadeMode.Split,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
            assertThat(actions?.get(Swipe.Down))
@@ -264,18 +206,14 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
        }

    @Test
    @EnableFlags(DualShade.FLAG_NAME)
    fun actions_communalAvailable_dualShade() =
        testScope.runTest {
            kosmos.enableDualShade()
            kosmos.setCommunalAvailable(true)

            val actions by collectLastValue(underTest.actions)

            setUpState(
                isShadeTouchable = true,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Dual,
            )
            setUpState(isShadeTouchable = true, isDeviceUnlocked = false)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Bouncer))
            assertThat(actions?.get(Swipe.Down))
@@ -283,14 +221,10 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
            assertThat(actions?.get(Swipe.Start)).isEqualTo(UserActionResult(Scenes.Communal))
            assertThat(actions?.get(Swipe.End)).isNull()

            setUpState(
                isShadeTouchable = false,
                isDeviceUnlocked = false,
                shadeMode = ShadeMode.Dual,
            )
            setUpState(isShadeTouchable = false, isDeviceUnlocked = false)
            assertThat(actions).isEmpty()

            setUpState(isShadeTouchable = true, isDeviceUnlocked = true, shadeMode = ShadeMode.Dual)
            setUpState(isShadeTouchable = true, isDeviceUnlocked = true)
            assertThat(actions).isNotEmpty()
            assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Gone))
            assertThat(actions?.get(Swipe.Down))
@@ -299,11 +233,7 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
            assertThat(actions?.get(Swipe.End)).isNull()
        }

    private fun TestScope.setUpState(
        isShadeTouchable: Boolean,
        isDeviceUnlocked: Boolean,
        shadeMode: ShadeMode,
    ) {
    private fun TestScope.setUpState(isShadeTouchable: Boolean, isDeviceUnlocked: Boolean) {
        if (isShadeTouchable) {
            kosmos.powerInteractor.setAwakeForTest()
        } else {
@@ -315,10 +245,6 @@ class DreamUserActionsViewModelTest : SysuiTestCase() {
        } else {
            lockDevice()
        }

        if (shadeMode !is ShadeMode.Dual) {
            kosmos.fakeShadeRepository.setShadeLayoutWide(shadeMode is ShadeMode.Split)
        }
        runCurrent()
    }

+2 −3
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@

package com.android.systemui.keyguard.ui.viewmodel

import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.FlagsParameterization
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -37,7 +36,7 @@ import com.android.systemui.res.R
import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.shade.data.repository.shadeRepository
import com.android.systemui.shade.shared.flag.DualShade
import com.android.systemui.shade.domain.interactor.enableDualShade
import com.android.systemui.testKosmos
import com.android.systemui.unfold.fakeUnfoldTransitionProgressProvider
import com.android.systemui.util.mockito.whenever
@@ -134,11 +133,11 @@ class LockscreenContentViewModelTest(flags: FlagsParameterization) : SysuiTestCa
        }

    @Test
    @EnableFlags(DualShade.FLAG_NAME)
    fun areNotificationsVisible_dualShadeWideOnLockscreen_true() =
        with(kosmos) {
            testScope.runTest {
                val areNotificationsVisible by collectLastValue(underTest.areNotificationsVisible())
                kosmos.enableDualShade()
                shadeRepository.setShadeLayoutWide(true)
                fakeKeyguardClockRepository.setClockSize(ClockSize.LARGE)

+2 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.notifications.ui.viewmodel

import android.platform.test.annotations.EnableFlags
import android.testing.TestableLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -36,8 +35,8 @@ import com.android.systemui.scene.domain.startable.sceneContainerStartable
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.shade.data.repository.shadeRepository
import com.android.systemui.shade.domain.interactor.enableDualShade
import com.android.systemui.shade.domain.interactor.shadeInteractor
import com.android.systemui.shade.shared.flag.DualShade
import com.android.systemui.shade.ui.viewmodel.notificationsShadeOverlayContentViewModel
import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
import com.android.systemui.statusbar.notification.data.repository.setActiveNotifs
@@ -56,7 +55,6 @@ import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
@TestableLooper.RunWithLooper
@EnableSceneContainer
@EnableFlags(DualShade.FLAG_NAME)
class NotificationsShadeOverlayContentViewModelTest : SysuiTestCase() {

    private val kosmos = testKosmos()
@@ -68,6 +66,7 @@ class NotificationsShadeOverlayContentViewModelTest : SysuiTestCase() {
    @Before
    fun setUp() {
        kosmos.sceneContainerStartable.start()
        kosmos.enableDualShade()
        underTest.activateIn(testScope)
    }

Loading