diff options
2 files changed, 27 insertions, 7 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationStackAppearanceIntegrationTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationStackAppearanceIntegrationTest.kt index 1f47542cec51..23b28e37a4db 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationStackAppearanceIntegrationTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/NotificationStackAppearanceIntegrationTest.kt @@ -173,6 +173,22 @@ class NotificationStackAppearanceIntegrationTest : SysuiTestCase() { } @Test + fun shadeExpansion_idleOnQs() = + testScope.runTest { + val transitionState = + MutableStateFlow<ObservableTransitionState>( + ObservableTransitionState.Idle(currentScene = Scenes.QuickSettings) + ) + sceneInteractor.setTransitionState(transitionState) + val expandFraction by collectLastValue(scrollViewModel.expandFraction) + assertThat(expandFraction).isEqualTo(1f) + + fakeSceneDataSource.changeScene(toScene = Scenes.QuickSettings) + val isScrollable by collectLastValue(scrollViewModel.isScrollable) + assertThat(isScrollable).isFalse() + } + + @Test fun shadeExpansion_shadeToQs() = testScope.runTest { val transitionState = diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt index ebb0d7dcee10..57e52b7dc2ad 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationScrollViewModel.kt @@ -70,10 +70,10 @@ constructor( ) { shadeExpansion, shadeMode, qsExpansion, transitionState, quickSettingsScene -> when (transitionState) { is ObservableTransitionState.Idle -> { - if (transitionState.currentScene == Scenes.Lockscreen) { - 1f - } else { - shadeExpansion + when (transitionState.currentScene) { + Scenes.Lockscreen, + Scenes.QuickSettings -> 1f + else -> shadeExpansion } } is ObservableTransitionState.Transition -> { @@ -162,9 +162,13 @@ constructor( stackAppearanceInteractor::setCurrentGestureOverscroll /** Whether the notification stack is scrollable or not. */ - val isScrollable: Flow<Boolean> = sceneInteractor.currentScene.map { - sceneInteractor.isSceneInFamily(it, SceneFamilies.NotifShade) || it == Scenes.Lockscreen - }.dumpWhileCollecting("isScrollable") + val isScrollable: Flow<Boolean> = + sceneInteractor.currentScene + .map { + sceneInteractor.isSceneInFamily(it, SceneFamilies.NotifShade) || + it == Scenes.Lockscreen + } + .dumpWhileCollecting("isScrollable") /** Whether the notification stack is displayed in doze mode. */ val isDozing: Flow<Boolean> by lazy { |