Loading packages/SystemUI/multivalentTests/src/com/android/systemui/actioncorner/domain/interactor/ActionCornerInteractorTest.kt +16 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.shade.shadeTestUtil import com.android.systemui.shared.system.actioncorner.ActionCornerConstants.HOME import com.android.systemui.shared.system.actioncorner.ActionCornerConstants.OVERVIEW import com.android.systemui.statusbar.policy.data.repository.fakeUserSetupRepository import com.android.systemui.testKosmos import com.android.systemui.util.settings.data.repository.userAwareSecureSettingsRepository import com.google.common.truth.Truth.assertThat Loading @@ -58,6 +59,7 @@ import kotlin.test.Test import org.junit.Before import org.junit.runner.RunWith import org.mockito.kotlin.mock import org.mockito.kotlin.never import org.mockito.kotlin.verify @SmallTest Loading @@ -81,12 +83,14 @@ class ActionCornerInteractorTest : SysuiTestCase() { shadeModeInteractor, shadeInteractor, actionCornerSettingRepository, fakeUserSetupRepository, ) } @Before fun setUp() { kosmos.enableDualShade() kosmos.fakeUserSetupRepository.setUserSetUp(true) kosmos.underTest.activateIn(kosmos.testScope) } Loading Loading @@ -176,4 +180,16 @@ class ActionCornerInteractorTest : SysuiTestCase() { assertThat(sceneInteractor.currentOverlays.value) .doesNotContain(Overlays.QuickSettingsShade) } @Test fun userNotSetUp_overviewActionConfigured_actionCornerActivated_actionNotTriggered() = kosmos.runTest { settingsRepository.setInt( ACTION_CORNER_BOTTOM_LEFT_ACTION, ACTION_CORNER_ACTION_OVERVIEW, ) fakeUserSetupRepository.setUserSetUp(false) actionCornerRepository.addState(ActiveActionCorner(BOTTOM_LEFT, DEFAULT_DISPLAY)) verify(launcherProxyService, never()).onActionCornerActivated(OVERVIEW, DEFAULT_DISPLAY) } } packages/SystemUI/src/com/android/systemui/actioncorner/domain/interactor/ActionCornerInteractor.kt +13 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import com.android.systemui.actioncorner.data.model.ActionCornerRegion.BOTTOM_LE import com.android.systemui.actioncorner.data.model.ActionCornerRegion.BOTTOM_RIGHT import com.android.systemui.actioncorner.data.model.ActionCornerRegion.TOP_LEFT import com.android.systemui.actioncorner.data.model.ActionCornerRegion.TOP_RIGHT import com.android.systemui.actioncorner.data.model.ActionCornerState import com.android.systemui.actioncorner.data.model.ActionCornerState.ActiveActionCorner import com.android.systemui.actioncorner.data.model.ActionType import com.android.systemui.actioncorner.data.model.ActionType.HOME import com.android.systemui.actioncorner.data.model.ActionType.NONE Loading @@ -39,10 +39,13 @@ import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode.Dual import com.android.systemui.shared.system.actioncorner.ActionCornerConstants import com.android.systemui.statusbar.policy.data.repository.UserSetupRepository import javax.inject.Inject import kotlin.coroutines.CoroutineContext import kotlinx.coroutines.awaitCancellation import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.filterIsInstance import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.withContext @SysUISingleton Loading @@ -55,11 +58,18 @@ constructor( private val shadeModeInteractor: ShadeModeInteractor, private val shadeInteractor: ShadeInteractor, private val actionCornerSettingRepository: ActionCornerSettingRepository, private val userSetupRepository: UserSetupRepository, ) : ExclusiveActivatable() { override suspend fun onActivated(): Nothing { repository.actionCornerState .filterIsInstance<ActionCornerState.ActiveActionCorner>() userSetupRepository.isUserSetUp .flatMapLatest { if (it) { repository.actionCornerState.filterIsInstance<ActiveActionCorner>() } else { emptyFlow() } } .collect { val action = getAction(it.region) when (action) { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/actioncorner/domain/interactor/ActionCornerInteractorTest.kt +16 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import com.android.systemui.shade.domain.interactor.shadeModeInteractor import com.android.systemui.shade.shadeTestUtil import com.android.systemui.shared.system.actioncorner.ActionCornerConstants.HOME import com.android.systemui.shared.system.actioncorner.ActionCornerConstants.OVERVIEW import com.android.systemui.statusbar.policy.data.repository.fakeUserSetupRepository import com.android.systemui.testKosmos import com.android.systemui.util.settings.data.repository.userAwareSecureSettingsRepository import com.google.common.truth.Truth.assertThat Loading @@ -58,6 +59,7 @@ import kotlin.test.Test import org.junit.Before import org.junit.runner.RunWith import org.mockito.kotlin.mock import org.mockito.kotlin.never import org.mockito.kotlin.verify @SmallTest Loading @@ -81,12 +83,14 @@ class ActionCornerInteractorTest : SysuiTestCase() { shadeModeInteractor, shadeInteractor, actionCornerSettingRepository, fakeUserSetupRepository, ) } @Before fun setUp() { kosmos.enableDualShade() kosmos.fakeUserSetupRepository.setUserSetUp(true) kosmos.underTest.activateIn(kosmos.testScope) } Loading Loading @@ -176,4 +180,16 @@ class ActionCornerInteractorTest : SysuiTestCase() { assertThat(sceneInteractor.currentOverlays.value) .doesNotContain(Overlays.QuickSettingsShade) } @Test fun userNotSetUp_overviewActionConfigured_actionCornerActivated_actionNotTriggered() = kosmos.runTest { settingsRepository.setInt( ACTION_CORNER_BOTTOM_LEFT_ACTION, ACTION_CORNER_ACTION_OVERVIEW, ) fakeUserSetupRepository.setUserSetUp(false) actionCornerRepository.addState(ActiveActionCorner(BOTTOM_LEFT, DEFAULT_DISPLAY)) verify(launcherProxyService, never()).onActionCornerActivated(OVERVIEW, DEFAULT_DISPLAY) } }
packages/SystemUI/src/com/android/systemui/actioncorner/domain/interactor/ActionCornerInteractor.kt +13 −3 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import com.android.systemui.actioncorner.data.model.ActionCornerRegion.BOTTOM_LE import com.android.systemui.actioncorner.data.model.ActionCornerRegion.BOTTOM_RIGHT import com.android.systemui.actioncorner.data.model.ActionCornerRegion.TOP_LEFT import com.android.systemui.actioncorner.data.model.ActionCornerRegion.TOP_RIGHT import com.android.systemui.actioncorner.data.model.ActionCornerState import com.android.systemui.actioncorner.data.model.ActionCornerState.ActiveActionCorner import com.android.systemui.actioncorner.data.model.ActionType import com.android.systemui.actioncorner.data.model.ActionType.HOME import com.android.systemui.actioncorner.data.model.ActionType.NONE Loading @@ -39,10 +39,13 @@ import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.shade.domain.interactor.ShadeModeInteractor import com.android.systemui.shade.shared.model.ShadeMode.Dual import com.android.systemui.shared.system.actioncorner.ActionCornerConstants import com.android.systemui.statusbar.policy.data.repository.UserSetupRepository import javax.inject.Inject import kotlin.coroutines.CoroutineContext import kotlinx.coroutines.awaitCancellation import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.filterIsInstance import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.withContext @SysUISingleton Loading @@ -55,11 +58,18 @@ constructor( private val shadeModeInteractor: ShadeModeInteractor, private val shadeInteractor: ShadeInteractor, private val actionCornerSettingRepository: ActionCornerSettingRepository, private val userSetupRepository: UserSetupRepository, ) : ExclusiveActivatable() { override suspend fun onActivated(): Nothing { repository.actionCornerState .filterIsInstance<ActionCornerState.ActiveActionCorner>() userSetupRepository.isUserSetUp .flatMapLatest { if (it) { repository.actionCornerState.filterIsInstance<ActiveActionCorner>() } else { emptyFlow() } } .collect { val action = getAction(it.region) when (action) { Loading