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

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

Merge "Cleanup hub disabled flow by consolidating logic" into main

parents 935ee0de fdda7b48
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -64,14 +64,6 @@ fun CommunalContainer(
            transitions = sceneTransitions,
        )

    // Don't show hub mode UI if communal is not available. Communal is only available if it has
    // been enabled via settings and either keyguard is showing, or, the device is currently
    // dreaming.
    val isCommunalAvailable by viewModel.isCommunalAvailable.collectAsState()
    if (!isCommunalAvailable) {
        return
    }

    // This effect exposes the SceneTransitionLayout's observable transition state to the rest of
    // the system, and unsets it when the view is disposed to avoid a memory leak.
    DisposableEffect(viewModel, sceneTransitionLayoutState) {
+19 −4
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ class CommunalInteractorTest : SysuiTestCase() {
            keyguardRepository.setIsEncryptedOrLockdown(false)
            userRepository.setSelectedUserInfo(mainUser)
            keyguardRepository.setKeyguardShowing(true)
            runCurrent()
            communalRepository.setCommunalEnabledState(true)

            assertThat(isAvailable).isTrue()
        }
@@ -138,7 +138,8 @@ class CommunalInteractorTest : SysuiTestCase() {

            keyguardRepository.setIsEncryptedOrLockdown(true)
            userRepository.setSelectedUserInfo(mainUser)
            runCurrent()
            keyguardRepository.setKeyguardShowing(true)
            communalRepository.setCommunalEnabledState(true)

            assertThat(isAvailable).isFalse()
        }
@@ -152,7 +153,7 @@ class CommunalInteractorTest : SysuiTestCase() {
            keyguardRepository.setIsEncryptedOrLockdown(false)
            userRepository.setSelectedUserInfo(secondaryUser)
            keyguardRepository.setKeyguardShowing(true)
            runCurrent()
            communalRepository.setCommunalEnabledState(true)

            assertThat(isAvailable).isFalse()
        }
@@ -166,11 +167,25 @@ class CommunalInteractorTest : SysuiTestCase() {
            keyguardRepository.setIsEncryptedOrLockdown(false)
            userRepository.setSelectedUserInfo(mainUser)
            keyguardRepository.setDreaming(true)
            runCurrent()
            communalRepository.setCommunalEnabledState(true)

            assertThat(isAvailable).isTrue()
        }

    @Test
    fun isCommunalAvailable_communalDisabled_false() =
        testScope.runTest {
            val isAvailable by collectLastValue(underTest.isCommunalAvailable)
            assertThat(isAvailable).isFalse()

            keyguardRepository.setIsEncryptedOrLockdown(false)
            userRepository.setSelectedUserInfo(mainUser)
            keyguardRepository.setKeyguardShowing(true)
            communalRepository.setCommunalEnabledState(false)

            assertThat(isAvailable).isFalse()
        }

    @Test
    fun widget_tutorialCompletedAndWidgetsAvailable_showWidgetContent() =
        testScope.runTest {
+11 −11
Original line number Diff line number Diff line
@@ -34,20 +34,15 @@ import com.android.systemui.kosmos.testScope
import com.android.systemui.testKosmos
import com.android.systemui.user.data.repository.FakeUserRepository
import com.android.systemui.user.data.repository.fakeUserRepository
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.MockitoAnnotations

@SmallTest
@RunWith(AndroidJUnit4::class)
class CommunalTutorialInteractorTest : SysuiTestCase() {
    @Mock lateinit var user: UserInfo

    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope

@@ -60,14 +55,14 @@ class CommunalTutorialInteractorTest : SysuiTestCase() {

    @Before
    fun setUp() {
        MockitoAnnotations.initMocks(this)

        keyguardRepository = kosmos.fakeKeyguardRepository
        communalTutorialRepository = kosmos.fakeCommunalTutorialRepository
        communalRepository = kosmos.fakeCommunalRepository
        communalInteractor = kosmos.communalInteractor
        userRepository = kosmos.fakeUserRepository

        userRepository.setUserInfos(listOf(MAIN_USER_INFO))

        underTest = kosmos.communalTutorialInteractor
    }

@@ -204,12 +199,17 @@ class CommunalTutorialInteractorTest : SysuiTestCase() {
    private suspend fun setCommunalAvailable(available: Boolean) {
        if (available) {
            communalRepository.setIsCommunalEnabled(true)
            communalRepository.setCommunalEnabledState(true)
            keyguardRepository.setIsEncryptedOrLockdown(false)
            whenever(user.isMain).thenReturn(true)
            userRepository.setUserInfos(listOf(user))
            userRepository.setSelectedUserInfo(user)
            userRepository.setSelectedUserInfo(MAIN_USER_INFO)
            keyguardRepository.setKeyguardShowing(true)
        } else {
            keyguardRepository.setIsEncryptedOrLockdown(true)
            communalRepository.setIsCommunalEnabled(false)
            communalRepository.setCommunalEnabledState(false)
        }
    }

    private companion object {
        val MAIN_USER_INFO = UserInfo(0, "primary", UserInfo.FLAG_MAIN)
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.systemui.communal.data.repository.FakeCommunalMediaRepository
import com.android.systemui.communal.data.repository.FakeCommunalTutorialRepository
import com.android.systemui.communal.data.repository.FakeCommunalWidgetRepository
import com.android.systemui.communal.data.repository.fakeCommunalMediaRepository
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.interactor.communalInteractor
@@ -90,6 +91,8 @@ class CommunalViewModelTest : SysuiTestCase() {
        mediaRepository = kosmos.fakeCommunalMediaRepository
        userRepository = kosmos.fakeUserRepository

        kosmos.fakeCommunalRepository.setCommunalEnabledState(true)

        underTest =
            CommunalViewModel(
                testScope,
+3 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.pm.UserInfo
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.communal.data.repository.fakeCommunalRepository
import com.android.systemui.communal.domain.interactor.communalInteractor
import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
import com.android.systemui.kosmos.applicationCoroutineScope
@@ -121,9 +122,10 @@ class CommunalAppWidgetHostStartableTest : SysuiTestCase() {

    private suspend fun setCommunalAvailable(available: Boolean) =
        with(kosmos) {
            fakeKeyguardRepository.setIsEncryptedOrLockdown(!available)
            fakeKeyguardRepository.setIsEncryptedOrLockdown(false)
            fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO)
            fakeKeyguardRepository.setKeyguardShowing(true)
            fakeCommunalRepository.setCommunalEnabledState(available)
        }

    private companion object {
Loading