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

Commit 4d7ff663 authored by Danny Burakov's avatar Danny Burakov Committed by Android (Google) Code Review
Browse files

Merge "[flexiglass] Simplify ShadeMode + remove ShadeRepository.isLargeScreen." into main

parents 25730af6 21182312
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -180,7 +180,6 @@ class LockscreenUserActionsViewModelTest : SysuiTestCase() {
            )
            sceneInteractor.changeScene(Scenes.Lockscreen, "reason")
            shadeRepository.setShadeLayoutWide(!isNarrowScreen)
            shadeRepository.setLargeScreen(!isNarrowScreen)
            fakePowerRepository.updateWakefulness(
                rawState = if (isShadeTouchable) WakefulnessState.AWAKE else WakefulnessState.ASLEEP
            )
+0 −2
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.res.R
import com.android.systemui.shade.data.repository.fakeShadeRepository
import com.android.systemui.shade.shared.model.ShadeMode
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
@@ -58,7 +57,6 @@ class ShadeModeInteractorImplTest : SysuiTestCase() {
            val shadeMode by collectLastValue(underTest.shadeMode)
            // This simulates the case of a tablet or certain unfolded foldables in portrait mode.
            enableSingleShade(wideLayout = false)
            fakeShadeRepository.setLargeScreen(true)
            displayStateRepository.setIsLargeScreen(true)

            assertThat(shadeMode).isEqualTo(ShadeMode.Single)
+0 −29
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import com.android.systemui.display.data.repository.createFakeDisplaySubcomponen
import com.android.systemui.display.data.repository.displayStateRepository
import com.android.systemui.display.data.repository.displaySubcomponentPerDisplayRepository
import com.android.systemui.display.domain.interactor.createDisplayStateInteractor
import com.android.systemui.flags.DisableSceneContainer
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.flags.parameterizeSceneContainerFlag
import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository
@@ -281,34 +280,6 @@ class ShadeStartableTest(flags: FlagsParameterization) : SysuiTestCase() {
            assertThat(legacyUseSplitShade).isFalse()
        }

    @Test
    @EnableSceneContainer
    fun hydrateLargeScreen_sceneContainer() =
        kosmos.runTest {
            val isLargeScreen by collectLastValue(shadeRepository.isLargeScreen)
            underTest.start()

            displayStateRepository.setIsLargeScreen(false)
            assertThat(isLargeScreen).isFalse()

            displayStateRepository.setIsLargeScreen(true)
            assertThat(isLargeScreen).isTrue()
        }

    @Test
    @DisableSceneContainer
    fun hydrateLargeScreen_nonSceneContainer() =
        kosmos.runTest {
            val isLargeScreen by collectLastValue(shadeRepository.isLargeScreen)
            underTest.start()

            displayStateRepository.setIsLargeScreen(false)
            assertThat(isLargeScreen).isFalse()

            displayStateRepository.setIsLargeScreen(true)
            assertThat(isLargeScreen).isTrue()
        }

    private fun Kosmos.changeScene(
        toScene: SceneKey,
        transitionState: MutableStateFlow<ObservableTransitionState>,
+12 −13
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.systemui.flags.andSceneContainer
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.res.R
import com.android.systemui.shade.domain.interactor.shadeInteractor
@@ -42,7 +43,6 @@ import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.testKosmos
import com.android.systemui.tuner.TunerService
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.After
import org.junit.Before
@@ -66,7 +66,8 @@ import platform.test.runner.parameterized.Parameters
@RunWith(ParameterizedAndroidJunit4::class)
@TestableLooper.RunWithLooper
class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase() {
    private val kosmos = testKosmos()

    private val kosmos = testKosmos().useUnconfinedTestDispatcher()
    private val testScope = kosmos.testScope
    private val featureFlags = FakeFeatureFlags()
    private val shadeTestUtil by lazy { kosmos.shadeTestUtil }
@@ -117,7 +118,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    private fun defaultConfigPostureClosed() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_auth_supported_posture,
            DEVICE_POSTURE_CLOSED
            DEVICE_POSTURE_CLOSED,
        )
        initKeyguardBypassController()
        verify(devicePostureController).addCallback(postureCallbackCaptor.capture())
@@ -127,7 +128,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    private fun defaultConfigPostureOpened() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_auth_supported_posture,
            DEVICE_POSTURE_OPENED
            DEVICE_POSTURE_OPENED,
        )
        initKeyguardBypassController()
        verify(devicePostureController).addCallback(postureCallbackCaptor.capture())
@@ -137,7 +138,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    private fun defaultConfigPostureFlipped() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_auth_supported_posture,
            DEVICE_POSTURE_FLIPPED
            DEVICE_POSTURE_FLIPPED,
        )
        initKeyguardBypassController()
        verify(devicePostureController).addCallback(postureCallbackCaptor.capture())
@@ -147,7 +148,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    private fun defaultConfigPostureUnknown() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_auth_supported_posture,
            DEVICE_POSTURE_UNKNOWN
            DEVICE_POSTURE_UNKNOWN,
        )
        initKeyguardBypassController()
        verify(devicePostureController, never()).addCallback(postureCallbackCaptor.capture())
@@ -268,7 +269,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    fun defaultConfigPostureClosed_canOverrideByPassAlways_shouldReturnFalse() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_unlock_bypass_override,
            1 /* FACE_UNLOCK_BYPASS_ALWAYS */
            1, /* FACE_UNLOCK_BYPASS_ALWAYS */
        )

        defaultConfigPostureClosed()
@@ -282,7 +283,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    fun defaultConfigPostureUnknown_canNotOverrideByPassAlways_shouldReturnTrue() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_unlock_bypass_override,
            1 /* FACE_UNLOCK_BYPASS_ALWAYS */
            1, /* FACE_UNLOCK_BYPASS_ALWAYS */
        )

        defaultConfigPostureUnknown()
@@ -294,7 +295,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    fun defaultConfigPostureUnknown_canNotOverrideByPassNever_shouldReturnFalse() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_unlock_bypass_override,
            2 /* FACE_UNLOCK_BYPASS_NEVER */
            2, /* FACE_UNLOCK_BYPASS_NEVER */
        )

        defaultConfigPostureUnknown()
@@ -309,12 +310,10 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
            assertThat(keyguardBypassController.qsExpanded).isFalse()
            val job = keyguardBypassController.listenForQsExpandedChange()
            shadeTestUtil.setQsExpansion(0.5f)
            runCurrent()

            assertThat(keyguardBypassController.qsExpanded).isTrue()

            shadeTestUtil.setQsExpansion(0f)
            runCurrent()

            assertThat(keyguardBypassController.qsExpanded).isFalse()

@@ -326,7 +325,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    fun canBypass_bypassDisabled() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_unlock_bypass_override,
            2 /* FACE_UNLOCK_BYPASS_NEVER */
            2, /* FACE_UNLOCK_BYPASS_NEVER */
        )
        initKeyguardBypassController()
        assertThat(keyguardBypassController.canBypass()).isFalse()
@@ -336,7 +335,7 @@ class KeyguardBypassControllerTest(flags: FlagsParameterization) : SysuiTestCase
    fun canBypass_bypassEnabled_alternateBouncerShowing() {
        context.orCreateTestableResources.addOverride(
            R.integer.config_face_unlock_bypass_override,
            1 /* FACE_UNLOCK_BYPASS_ALWAYS */
            1, /* FACE_UNLOCK_BYPASS_ALWAYS */
        )
        initKeyguardBypassController()
        whenever(keyguardTransitionInteractor.getCurrentState())
+0 −16
Original line number Diff line number Diff line
@@ -117,12 +117,6 @@ interface ShadeRepository {
    /** Provides whether the display containing the shade is wide (i.e. >= 600dp). */
    val isWideScreen: MutableStateFlow<Boolean>

    /**
     * Provides whether the display containing the shade is a large screen (i.e. all edges are >=
     * 600dp). Unlike [isWideScreen], this is agnostic of display rotation.
     */
    val isLargeScreen: StateFlow<Boolean>

    /** True when QS is taking up the entire screen, i.e. fully expanded on a non-unfolded phone. */
    @Deprecated("Use ShadeInteractor instead") val legacyQsFullscreen: StateFlow<Boolean>

@@ -132,9 +126,6 @@ interface ShadeRepository {
    /** Sets whether the shade layout should be wide (true) or narrow (false). */
    fun setShadeLayoutWide(isShadeLayoutWide: Boolean)

    /** Sets whether the current display is a large screen. */
    fun setLargeScreen(isLargeScreen: Boolean)

    /** Sets whether a closing animation is happening. */
    @Deprecated("Use ShadeAnimationInteractor instead") fun setLegacyIsClosing(isClosing: Boolean)

@@ -255,18 +246,11 @@ class ShadeRepositoryImpl @Inject constructor(@Background val backgroundScope: C
    @Deprecated("Use ShadeInteractor instead")
    override val legacyQsFullscreen: StateFlow<Boolean> = _legacyQsFullscreen.asStateFlow()

    private val _isLargeScreen = MutableStateFlow(false)
    override val isLargeScreen: StateFlow<Boolean> = _isLargeScreen.asStateFlow()

    override fun setShadeLayoutWide(isShadeLayoutWide: Boolean) {
        isWideScreen.value = isShadeLayoutWide
        legacyUseSplitShade.value = isShadeLayoutWide
    }

    override fun setLargeScreen(isLargeScreen: Boolean) {
        _isLargeScreen.value = isLargeScreen
    }

    @Deprecated("Use ShadeInteractor instead")
    override fun setLegacyQsFullscreen(legacyQsFullscreen: Boolean) {
        _legacyQsFullscreen.value = legacyQsFullscreen
Loading