Loading packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModelTest.kt +31 −10 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.shade.ui.viewmodel import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.compose.animation.scene.Back import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.compose.animation.scene.Swipe Loading Loading @@ -80,7 +81,7 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { } @Test fun upTransitionSceneKey_deviceLocked_lockScreen() = fun upOrBackTransitionSceneKey_deviceLocked_lockScreen() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(homeSceneFamilyResolver.resolvedScene) Loading @@ -88,11 +89,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Lockscreen) } @Test fun upTransitionSceneKey_deviceUnlocked_gone() = fun upOrBackTransitionSceneKey_deviceUnlocked_gone() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(homeSceneFamilyResolver.resolvedScene) Loading @@ -101,11 +104,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Gone) } @Test fun upTransitionSceneKey_keyguardDisabled_gone() = fun upOrBackTransitionSceneKey_keyguardDisabled_gone() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(kosmos.homeSceneFamilyResolver.resolvedScene) Loading @@ -114,11 +119,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Gone) } @Test fun upTransitionSceneKey_authMethodSwipe_lockscreenNotDismissed_goesToLockscreen() = fun upOrBackTransitionSceneKey_authMethodSwipe_lockscreenNotDismissed_goesToLockscreen() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(kosmos.homeSceneFamilyResolver.resolvedScene) Loading @@ -128,11 +135,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Lockscreen) } @Test fun upTransitionSceneKey_authMethodSwipe_lockscreenDismissed_goesToGone() = fun upOrBackTransitionSceneKey_authMethodSwipe_lockscreenDismissed_goesToGone() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(kosmos.homeSceneFamilyResolver.resolvedScene) Loading @@ -142,25 +151,29 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Gone) } @Test fun upTransitionKey_splitShadeEnabled_isGoneToSplitShade() = fun upOrBackTransitionKey_splitShadeEnabled_isGoneToSplitShade() = kosmos.runTest { val actions by collectLastValue(underTest.actions) enableSplitShade() assertThat(actions?.get(Swipe.Up)?.transitionKey).isEqualTo(ToSplitShade) assertThat(actions?.get(Back)?.transitionKey).isEqualTo(ToSplitShade) } @Test fun upTransitionKey_splitShadeDisable_isNull() = fun upOrBackTransitionKey_splitShadeDisable_isNull() = kosmos.runTest { val actions by collectLastValue(underTest.actions) enableSingleShade() assertThat(actions?.get(Swipe.Up)?.transitionKey).isNull() assertThat(actions?.get(Back)?.transitionKey).isNull() } @Test Loading @@ -184,7 +197,7 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { } @Test fun upTransitionSceneKey_customizing_noTransition() = fun upOrBackTransitionSceneKey_customizing_noTransition() = kosmos.runTest { val actions by collectLastValue(underTest.actions) Loading @@ -195,10 +208,11 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { } ) .isEmpty() assertThat(actions!!.keys.filterIsInstance<Back>()).isEmpty() } @Test fun upTransitionSceneKey_backToCommunal() = fun upOrBackTransitionSceneKey_backToCommunal() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val currentScene by collectLastValue(sceneInteractor.currentScene) Loading @@ -209,10 +223,11 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat(currentScene).isEqualTo(Scenes.Shade) assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Communal)) assertThat(actions?.get(Back)).isEqualTo(UserActionResult(Scenes.Communal)) } @Test fun upTransitionSceneKey_neverGoesBackToShadeScene() = fun upOrBackTransitionSceneKey_neverGoesBackToShadeScene() = kosmos.runTest { val actions by collectValues(underTest.actions) val currentScene by collectLastValue(sceneInteractor.currentScene) Loading @@ -229,6 +244,12 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { ) .that((map[Swipe.Up] as? UserActionResult.ChangeScene)?.toScene) .isNotEqualTo(Scenes.Shade) assertWithMessage( "Actions on index $index is incorrectly mapping back to the Shade scene!" ) .that((map[Back] as? UserActionResult.ChangeScene)?.toScene) .isNotEqualTo(Scenes.Shade) } } Loading packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModel.kt +4 −8 Original line number Diff line number Diff line Loading @@ -57,14 +57,10 @@ constructor( ) { shadeMode, isCustomizerShowing, backScene -> buildMap<UserAction, UserActionResult> { if (!isCustomizerShowing) { set( Swipe.Up, UserActionResult( backScene, ToSplitShade.takeIf { shadeMode is ShadeMode.Split }, ), ) set(Back, UserActionResult(backScene)) val backSceneTransitionKey = ToSplitShade.takeIf { shadeMode is ShadeMode.Split } set(Swipe.Up, UserActionResult(backScene, backSceneTransitionKey)) set(Back, UserActionResult(backScene, backSceneTransitionKey)) } // TODO(b/330200163) Add an else to be able to collapse the shade while Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModelTest.kt +31 −10 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.shade.ui.viewmodel import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.compose.animation.scene.Back import com.android.compose.animation.scene.ObservableTransitionState import com.android.compose.animation.scene.SceneKey import com.android.compose.animation.scene.Swipe Loading Loading @@ -80,7 +81,7 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { } @Test fun upTransitionSceneKey_deviceLocked_lockScreen() = fun upOrBackTransitionSceneKey_deviceLocked_lockScreen() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(homeSceneFamilyResolver.resolvedScene) Loading @@ -88,11 +89,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Lockscreen) } @Test fun upTransitionSceneKey_deviceUnlocked_gone() = fun upOrBackTransitionSceneKey_deviceUnlocked_gone() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(homeSceneFamilyResolver.resolvedScene) Loading @@ -101,11 +104,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Gone) } @Test fun upTransitionSceneKey_keyguardDisabled_gone() = fun upOrBackTransitionSceneKey_keyguardDisabled_gone() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(kosmos.homeSceneFamilyResolver.resolvedScene) Loading @@ -114,11 +119,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Gone) } @Test fun upTransitionSceneKey_authMethodSwipe_lockscreenNotDismissed_goesToLockscreen() = fun upOrBackTransitionSceneKey_authMethodSwipe_lockscreenNotDismissed_goesToLockscreen() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(kosmos.homeSceneFamilyResolver.resolvedScene) Loading @@ -128,11 +135,13 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Lockscreen) } @Test fun upTransitionSceneKey_authMethodSwipe_lockscreenDismissed_goesToGone() = fun upOrBackTransitionSceneKey_authMethodSwipe_lockscreenDismissed_goesToGone() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val homeScene by collectLastValue(kosmos.homeSceneFamilyResolver.resolvedScene) Loading @@ -142,25 +151,29 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat((actions?.get(Swipe.Up) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat((actions?.get(Back) as? UserActionResult.ChangeScene)?.toScene) .isEqualTo(SceneFamilies.Home) assertThat(homeScene).isEqualTo(Scenes.Gone) } @Test fun upTransitionKey_splitShadeEnabled_isGoneToSplitShade() = fun upOrBackTransitionKey_splitShadeEnabled_isGoneToSplitShade() = kosmos.runTest { val actions by collectLastValue(underTest.actions) enableSplitShade() assertThat(actions?.get(Swipe.Up)?.transitionKey).isEqualTo(ToSplitShade) assertThat(actions?.get(Back)?.transitionKey).isEqualTo(ToSplitShade) } @Test fun upTransitionKey_splitShadeDisable_isNull() = fun upOrBackTransitionKey_splitShadeDisable_isNull() = kosmos.runTest { val actions by collectLastValue(underTest.actions) enableSingleShade() assertThat(actions?.get(Swipe.Up)?.transitionKey).isNull() assertThat(actions?.get(Back)?.transitionKey).isNull() } @Test Loading @@ -184,7 +197,7 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { } @Test fun upTransitionSceneKey_customizing_noTransition() = fun upOrBackTransitionSceneKey_customizing_noTransition() = kosmos.runTest { val actions by collectLastValue(underTest.actions) Loading @@ -195,10 +208,11 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { } ) .isEmpty() assertThat(actions!!.keys.filterIsInstance<Back>()).isEmpty() } @Test fun upTransitionSceneKey_backToCommunal() = fun upOrBackTransitionSceneKey_backToCommunal() = kosmos.runTest { val actions by collectLastValue(underTest.actions) val currentScene by collectLastValue(sceneInteractor.currentScene) Loading @@ -209,10 +223,11 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { assertThat(currentScene).isEqualTo(Scenes.Shade) assertThat(actions?.get(Swipe.Up)).isEqualTo(UserActionResult(Scenes.Communal)) assertThat(actions?.get(Back)).isEqualTo(UserActionResult(Scenes.Communal)) } @Test fun upTransitionSceneKey_neverGoesBackToShadeScene() = fun upOrBackTransitionSceneKey_neverGoesBackToShadeScene() = kosmos.runTest { val actions by collectValues(underTest.actions) val currentScene by collectLastValue(sceneInteractor.currentScene) Loading @@ -229,6 +244,12 @@ class ShadeUserActionsViewModelTest : SysuiTestCase() { ) .that((map[Swipe.Up] as? UserActionResult.ChangeScene)?.toScene) .isNotEqualTo(Scenes.Shade) assertWithMessage( "Actions on index $index is incorrectly mapping back to the Shade scene!" ) .that((map[Back] as? UserActionResult.ChangeScene)?.toScene) .isNotEqualTo(Scenes.Shade) } } Loading
packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeUserActionsViewModel.kt +4 −8 Original line number Diff line number Diff line Loading @@ -57,14 +57,10 @@ constructor( ) { shadeMode, isCustomizerShowing, backScene -> buildMap<UserAction, UserActionResult> { if (!isCustomizerShowing) { set( Swipe.Up, UserActionResult( backScene, ToSplitShade.takeIf { shadeMode is ShadeMode.Split }, ), ) set(Back, UserActionResult(backScene)) val backSceneTransitionKey = ToSplitShade.takeIf { shadeMode is ShadeMode.Split } set(Swipe.Up, UserActionResult(backScene, backSceneTransitionKey)) set(Back, UserActionResult(backScene, backSceneTransitionKey)) } // TODO(b/330200163) Add an else to be able to collapse the shade while Loading