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

Commit 96368b54 authored by Lucas Silva's avatar Lucas Silva Committed by Android (Google) Code Review
Browse files

Merge "Refactor communal scene logic to standalone interactor" into main

parents 633f4509 0f413471
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ class CommunalRepositoryImplTest : SysuiTestCase() {
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
    private val underTest by lazy {
        CommunalRepositoryImpl(
        CommunalSceneRepositoryImpl(
            kosmos.applicationCoroutineScope,
            kosmos.sceneDataSource,
        )
+2 −2
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
import com.android.systemui.SysuiTestCase
import com.android.systemui.communal.data.repository.FakeCommunalRepository
import com.android.systemui.communal.data.repository.FakeCommunalSceneRepository
import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository
import com.android.systemui.communal.data.repository.fakeCommunalRepository
import com.android.systemui.communal.data.repository.fakeCommunalWidgetRepository
@@ -48,7 +48,7 @@ class CommunalInteractorCommunalDisabledTest : SysuiTestCase() {
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope

    private lateinit var communalRepository: FakeCommunalRepository
    private lateinit var communalRepository: FakeCommunalSceneRepository
    private lateinit var widgetRepository: FakeCommunalWidgetRepository
    private lateinit var keyguardRepository: FakeKeyguardRepository

+22 −36
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ import com.android.systemui.broadcast.broadcastDispatcher
import com.android.systemui.communal.data.repository.CommunalSettingsRepositoryImpl
import com.android.systemui.communal.data.repository.FakeCommunalMediaRepository
import com.android.systemui.communal.data.repository.FakeCommunalPrefsRepository
import com.android.systemui.communal.data.repository.FakeCommunalRepository
import com.android.systemui.communal.data.repository.FakeCommunalSceneRepository
import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository
import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository
import com.android.systemui.communal.data.repository.fakeCommunalMediaRepository
@@ -48,6 +48,7 @@ import com.android.systemui.communal.data.repository.fakeCommunalRepository
import com.android.systemui.communal.data.repository.fakeCommunalTutorialRepository
import com.android.systemui.communal.data.repository.fakeCommunalWidgetRepository
import com.android.systemui.communal.domain.model.CommunalContentModel
import com.android.systemui.communal.domain.model.CommunalTransitionProgressModel
import com.android.systemui.communal.shared.model.CommunalContentSize
import com.android.systemui.communal.shared.model.CommunalScenes
import com.android.systemui.communal.shared.model.CommunalWidgetContentModel
@@ -111,7 +112,7 @@ class CommunalInteractorTest : SysuiTestCase() {
    private val testScope = kosmos.testScope

    private lateinit var tutorialRepository: FakeCommunalTutorialRepository
    private lateinit var communalRepository: FakeCommunalRepository
    private lateinit var communalRepository: FakeCommunalSceneRepository
    private lateinit var mediaRepository: FakeCommunalMediaRepository
    private lateinit var widgetRepository: FakeCommunalWidgetRepository
    private lateinit var smartspaceRepository: FakeSmartspaceRepository
@@ -507,30 +508,6 @@ class CommunalInteractorTest : SysuiTestCase() {
            assertThat(desiredScene()).isEqualTo(targetScene)
        }

    @Test
    fun desiredScene_communalNotAvailable_returnsBlank() =
        testScope.runTest {
            kosmos.setCommunalAvailable(true)
            runCurrent()

            val desiredScene by collectLastValue(underTest.desiredScene)

            underTest.changeScene(CommunalScenes.Communal)
            assertThat(desiredScene).isEqualTo(CommunalScenes.Communal)

            kosmos.setCommunalAvailable(false)
            runCurrent()

            // Scene returns blank when communal is not available.
            assertThat(desiredScene).isEqualTo(CommunalScenes.Blank)

            kosmos.setCommunalAvailable(true)
            runCurrent()

            // After re-enabling, scene goes back to Communal.
            assertThat(desiredScene).isEqualTo(CommunalScenes.Communal)
        }

    @Test
    fun transitionProgress_onTargetScene_fullProgress() =
        testScope.runTest {
@@ -545,7 +522,8 @@ class CommunalInteractorTest : SysuiTestCase() {
            underTest.setTransitionState(transitionState)

            // We're on the target scene.
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Idle(targetScene))
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.Idle(targetScene))
        }

    @Test
@@ -563,7 +541,8 @@ class CommunalInteractorTest : SysuiTestCase() {
            underTest.setTransitionState(transitionState)

            // Transition progress is still idle, but we're not on the target scene.
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Idle(currentScene))
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.Idle(currentScene))
        }

    @Test
@@ -581,7 +560,8 @@ class CommunalInteractorTest : SysuiTestCase() {
            underTest.setTransitionState(transitionState)

            // Progress starts at 0.
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Idle(currentScene))
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.Idle(currentScene))

            val progress = MutableStateFlow(0f)
            transitionState =
@@ -599,16 +579,18 @@ class CommunalInteractorTest : SysuiTestCase() {

            // Partially transition.
            progress.value = .4f
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Transition(.4f))
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.Transition(.4f))

            // Transition is at full progress.
            progress.value = 1f
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Transition(1f))
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgressModel.Transition(1f))

            // Transition finishes.
            transitionState = MutableStateFlow(ObservableTransitionState.Idle(targetScene))
            underTest.setTransitionState(transitionState)
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Idle(targetScene))
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.Idle(targetScene))
        }

    @Test
@@ -626,7 +608,8 @@ class CommunalInteractorTest : SysuiTestCase() {
            underTest.setTransitionState(transitionState)

            // Progress starts at 0.
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Idle(currentScene))
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.Idle(currentScene))

            val progress = MutableStateFlow(0f)
            transitionState =
@@ -646,16 +629,19 @@ class CommunalInteractorTest : SysuiTestCase() {
            progress.value = .4f

            // This is a transition we don't care about the progress of.
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.OtherTransition)
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.OtherTransition)

            // Transition is at full progress.
            progress.value = 1f
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.OtherTransition)
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.OtherTransition)

            // Transition finishes.
            transitionState = MutableStateFlow(ObservableTransitionState.Idle(targetScene))
            underTest.setTransitionState(transitionState)
            assertThat(transitionProgress).isEqualTo(CommunalTransitionProgress.Idle(targetScene))
            assertThat(transitionProgress)
                .isEqualTo(CommunalTransitionProgressModel.Idle(targetScene))
        }

    @Test
+2 −2
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ import com.android.compose.animation.scene.ObservableTransitionState
import com.android.systemui.Flags.FLAG_COMMUNAL_HUB
import com.android.systemui.SysuiTestCase
import com.android.systemui.communal.data.repository.FakeCommunalMediaRepository
import com.android.systemui.communal.data.repository.FakeCommunalRepository
import com.android.systemui.communal.data.repository.FakeCommunalSceneRepository
import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository
import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository
import com.android.systemui.communal.data.repository.fakeCommunalMediaRepository
@@ -106,7 +106,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() {
    private lateinit var userRepository: FakeUserRepository
    private lateinit var shadeTestUtil: ShadeTestUtil
    private lateinit var keyguardTransitionRepository: FakeKeyguardTransitionRepository
    private lateinit var communalRepository: FakeCommunalRepository
    private lateinit var communalRepository: FakeCommunalSceneRepository

    private lateinit var underTest: CommunalViewModel

+2 −3
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ import com.android.systemui.ambient.touch.scrim.ScrimController
import com.android.systemui.ambient.touch.scrim.ScrimManager
import com.android.systemui.bouncer.data.repository.FakeKeyguardBouncerRepository
import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository
import com.android.systemui.communal.data.repository.FakeCommunalRepository
import com.android.systemui.communal.data.repository.FakeCommunalSceneRepository
import com.android.systemui.communal.data.repository.fakeCommunalRepository
import com.android.systemui.communal.domain.interactor.CommunalInteractor
import com.android.systemui.communal.domain.interactor.communalInteractor
@@ -79,7 +79,6 @@ import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.clearInvocations
import org.mockito.Mockito.isNull
import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations

@@ -156,7 +155,7 @@ class DreamOverlayServiceTest : SysuiTestCase() {
    @Mock lateinit var mDreamOverlayCallbackController: DreamOverlayCallbackController

    private lateinit var bouncerRepository: FakeKeyguardBouncerRepository
    private lateinit var communalRepository: FakeCommunalRepository
    private lateinit var communalRepository: FakeCommunalSceneRepository

    @Captor var mViewCaptor: ArgumentCaptor<View>? = null
    private lateinit var mService: DreamOverlayService
Loading