Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelTest.kt +5 −32 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import com.android.systemui.qs.panels.domain.interactor.tileSquishinessInteracto import com.android.systemui.qs.panels.ui.viewmodel.setConfigurationForMediaInRow import com.android.systemui.res.R import com.android.systemui.shade.data.repository.FakeShadeRepository import com.android.systemui.shade.data.repository.fakeShadeRepository import com.android.systemui.shade.largeScreenHeaderHelper import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository Loading Loading @@ -439,49 +438,23 @@ class QSFragmentComposeViewModelTest : AbstractQSFragmentComposeViewModelTest() } @Test fun qsVisibleAndAnyShadeVisible_userTracking_false() = fun qsVisibleAndAnyShadeExpanded() = with(kosmos) { testScope.testWithinLifecycle { fakeShadeRepository.setUserTracking(false) underTest.isPanelExpanded = false underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isPanelExpanded = false underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isPanelExpanded = true underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue() } } @Test fun qsVisibleAndAnyShadeVisible_userTracking_true() = with(kosmos) { testScope.testWithinLifecycle { fakeShadeRepository.setUserTracking(true) underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue() underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isPanelExpanded = true underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue() } } Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +2 −0 Original line number Diff line number Diff line Loading @@ -203,6 +203,8 @@ public interface QS extends FragmentBase { */ void setIsNotificationPanelFullWidth(boolean isFullWidth); default void setPanelExpanded(boolean panelExpanded) {} /** * Callback for when QSPanel container is scrolled */ Loading packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +4 −0 Original line number Diff line number Diff line Loading @@ -464,6 +464,10 @@ constructor( viewModel.isStackScrollerOverscrolling = overscrolling } override fun setPanelExpanded(panelExpanded: Boolean) { viewModel.isPanelExpanded = panelExpanded } override fun setExpanded(qsExpanded: Boolean) { viewModel.isQsExpanded = qsExpanded } Loading packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt +4 −14 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ constructor( var isQsVisible by mutableStateOf(false) val isQsVisibleAndAnyShadeExpanded: Boolean get() = (anyShadeExpanded || isUserInteracting) && isQsVisible get() = isPanelExpanded && isQsVisible // This can only be negative if undefined (in which case it will be -1f), else it will be // in [0, 1]. In some cases, it could be set back to -1f internally to indicate that it's Loading Loading @@ -211,6 +211,8 @@ constructor( var heightOverride by mutableStateOf(-1) var isPanelExpanded by mutableStateOf(false) val expansionState by derivedStateOf { if (forceQs) { QSExpansionState(1f) Loading Loading @@ -448,18 +450,6 @@ constructor( ), ) private val anyShadeExpanded by hydrator.hydratedStateOf( traceName = "anyShadeExpanded", source = shadeInteractor.isAnyExpanded, ) private val isUserInteracting by hydrator.hydratedStateOf( traceName = "isUserInteracting", source = shadeInteractor.isUserInteracting, ) fun applyNewQsScrollerBounds(left: Float, top: Float, right: Float, bottom: Float) { if (usingMedia) { qsMediaHost.currentClipping.set( Loading Loading @@ -543,7 +533,7 @@ constructor( printSection("Quick Settings state") { println("isQSExpanded", isQsExpanded) println("isQSVisible", isQsVisible) println("anyShadeExpanded", anyShadeExpanded) println("isPanelExpanded", isPanelExpanded) println("isQSVisibleAndAnyShadeExpanded", isQsVisibleAndAnyShadeExpanded) println("isQSEnabled", isQsEnabled) println("isCustomizing", containerViewModel.editModeViewModel.isEditing.value) Loading packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +3 −1 Original line number Diff line number Diff line Loading @@ -3231,8 +3231,10 @@ public final class NotificationPanelViewController implements @Override public void updateExpansionAndVisibility() { if (!SceneContainerFlag.isEnabled()) { boolean isExpanded = isExpanded(); mShadeExpansionStateManager.onPanelExpansionChanged( mExpandedFraction, isExpanded(), isTracking()); mExpandedFraction, isExpanded, isTracking()); mQsController.setPanelExpanded(isExpanded); } updateVisibility(); } Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModelTest.kt +5 −32 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import com.android.systemui.qs.panels.domain.interactor.tileSquishinessInteracto import com.android.systemui.qs.panels.ui.viewmodel.setConfigurationForMediaInRow import com.android.systemui.res.R import com.android.systemui.shade.data.repository.FakeShadeRepository import com.android.systemui.shade.data.repository.fakeShadeRepository import com.android.systemui.shade.largeScreenHeaderHelper import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.disableflags.data.repository.fakeDisableFlagsRepository Loading Loading @@ -439,49 +438,23 @@ class QSFragmentComposeViewModelTest : AbstractQSFragmentComposeViewModelTest() } @Test fun qsVisibleAndAnyShadeVisible_userTracking_false() = fun qsVisibleAndAnyShadeExpanded() = with(kosmos) { testScope.testWithinLifecycle { fakeShadeRepository.setUserTracking(false) underTest.isPanelExpanded = false underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isPanelExpanded = false underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isPanelExpanded = true underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue() } } @Test fun qsVisibleAndAnyShadeVisible_userTracking_true() = with(kosmos) { testScope.testWithinLifecycle { fakeShadeRepository.setUserTracking(true) underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(false) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue() underTest.isQsVisible = false fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isFalse() underTest.isPanelExpanded = true underTest.isQsVisible = true fakeShadeRepository.setLegacyExpandedOrAwaitingInputTransfer(true) assertThat(underTest.isQsVisibleAndAnyShadeExpanded).isTrue() } } Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +2 −0 Original line number Diff line number Diff line Loading @@ -203,6 +203,8 @@ public interface QS extends FragmentBase { */ void setIsNotificationPanelFullWidth(boolean isFullWidth); default void setPanelExpanded(boolean panelExpanded) {} /** * Callback for when QSPanel container is scrolled */ Loading
packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +4 −0 Original line number Diff line number Diff line Loading @@ -464,6 +464,10 @@ constructor( viewModel.isStackScrollerOverscrolling = overscrolling } override fun setPanelExpanded(panelExpanded: Boolean) { viewModel.isPanelExpanded = panelExpanded } override fun setExpanded(qsExpanded: Boolean) { viewModel.isQsExpanded = qsExpanded } Loading
packages/SystemUI/src/com/android/systemui/qs/composefragment/viewmodel/QSFragmentComposeViewModel.kt +4 −14 Original line number Diff line number Diff line Loading @@ -135,7 +135,7 @@ constructor( var isQsVisible by mutableStateOf(false) val isQsVisibleAndAnyShadeExpanded: Boolean get() = (anyShadeExpanded || isUserInteracting) && isQsVisible get() = isPanelExpanded && isQsVisible // This can only be negative if undefined (in which case it will be -1f), else it will be // in [0, 1]. In some cases, it could be set back to -1f internally to indicate that it's Loading Loading @@ -211,6 +211,8 @@ constructor( var heightOverride by mutableStateOf(-1) var isPanelExpanded by mutableStateOf(false) val expansionState by derivedStateOf { if (forceQs) { QSExpansionState(1f) Loading Loading @@ -448,18 +450,6 @@ constructor( ), ) private val anyShadeExpanded by hydrator.hydratedStateOf( traceName = "anyShadeExpanded", source = shadeInteractor.isAnyExpanded, ) private val isUserInteracting by hydrator.hydratedStateOf( traceName = "isUserInteracting", source = shadeInteractor.isUserInteracting, ) fun applyNewQsScrollerBounds(left: Float, top: Float, right: Float, bottom: Float) { if (usingMedia) { qsMediaHost.currentClipping.set( Loading Loading @@ -543,7 +533,7 @@ constructor( printSection("Quick Settings state") { println("isQSExpanded", isQsExpanded) println("isQSVisible", isQsVisible) println("anyShadeExpanded", anyShadeExpanded) println("isPanelExpanded", isPanelExpanded) println("isQSVisibleAndAnyShadeExpanded", isQsVisibleAndAnyShadeExpanded) println("isQSEnabled", isQsEnabled) println("isCustomizing", containerViewModel.editModeViewModel.isEditing.value) Loading
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +3 −1 Original line number Diff line number Diff line Loading @@ -3231,8 +3231,10 @@ public final class NotificationPanelViewController implements @Override public void updateExpansionAndVisibility() { if (!SceneContainerFlag.isEnabled()) { boolean isExpanded = isExpanded(); mShadeExpansionStateManager.onPanelExpansionChanged( mExpandedFraction, isExpanded(), isTracking()); mExpandedFraction, isExpanded, isTracking()); mQsController.setPanelExpanded(isExpanded); } updateVisibility(); } Loading