diff options
| author | 2024-01-29 19:36:40 +0000 | |
|---|---|---|
| committer | 2024-01-29 19:36:40 +0000 | |
| commit | c97f4daa53a059cc4a061f32cc31d79457c6dec6 (patch) | |
| tree | 666bf246d4fc586e1bebd4327e3fdb786ef80baf | |
| parent | 8608a61217ab43b2e38b11130cba129226948356 (diff) | |
| parent | 36dcd63c4310a72fc8a8ce44888b1c856bc6d535 (diff) | |
Merge "Delete SceneInteractor.transitioning" into main
5 files changed, 7 insertions, 209 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt index e2beaeea6402..b11edf7b47b7 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt @@ -58,6 +58,8 @@ import com.android.systemui.battery.BatteryMeterViewController import com.android.systemui.common.ui.compose.windowinsets.CutoutLocation import com.android.systemui.common.ui.compose.windowinsets.LocalDisplayCutout import com.android.systemui.res.R +import com.android.systemui.scene.ui.composable.QuickSettings +import com.android.systemui.scene.ui.composable.Shade as ShadeKey import com.android.systemui.shade.ui.viewmodel.ShadeHeaderViewModel import com.android.systemui.statusbar.phone.StatusBarIconController import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager @@ -348,7 +350,7 @@ private fun ShadeCarrierGroup( } @Composable -private fun StatusIcons( +private fun SceneScope.StatusIcons( viewModel: ShadeHeaderViewModel, createTintedIconManager: (ViewGroup, StatusBarLocation) -> TintedIconManager, statusBarIconController: StatusBarIconController, @@ -358,7 +360,6 @@ private fun StatusIcons( val carrierIconSlots = listOf(stringResource(id = com.android.internal.R.string.status_bar_mobile)) val isSingleCarrier by viewModel.isSingleCarrier.collectAsState() - val isTransitioning by viewModel.isTransitioning.collectAsState() AndroidView( factory = { context -> @@ -373,7 +374,9 @@ private fun StatusIcons( iconContainer }, update = { iconContainer -> - iconContainer.setQsExpansionTransitioning(isTransitioning) + iconContainer.setQsExpansionTransitioning( + layoutState.isTransitioningBetween(ShadeKey, QuickSettings) + ) if (isSingleCarrier || !useExpandedFormat) { iconContainer.removeIgnoredSlots(carrierIconSlots) } else { diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt index bf99a8687aa4..942fbc229e8a 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt @@ -174,105 +174,6 @@ class SceneInteractorTest : SysuiTestCase() { } @Test - fun transitioning_idle_false() = - testScope.runTest { - val transitionState = - MutableStateFlow<ObservableTransitionState>( - ObservableTransitionState.Idle(SceneKey.Shade) - ) - val transitioning by - collectLastValue(underTest.transitioning(SceneKey.Shade, SceneKey.Lockscreen)) - underTest.setTransitionState(transitionState) - - assertThat(transitioning).isFalse() - } - - @Test - fun transitioning_wrongFromScene_false() = - testScope.runTest { - val transitionState = - MutableStateFlow<ObservableTransitionState>( - ObservableTransitionState.Transition( - fromScene = SceneKey.Gone, - toScene = SceneKey.Lockscreen, - progress = flowOf(0.5f), - isInitiatedByUserInput = false, - isUserInputOngoing = flowOf(false), - ) - ) - val transitioning by - collectLastValue(underTest.transitioning(SceneKey.Shade, SceneKey.Lockscreen)) - underTest.setTransitionState(transitionState) - - assertThat(transitioning).isFalse() - } - - @Test - fun transitioning_wrongToScene_false() = - testScope.runTest { - val transitionState = - MutableStateFlow<ObservableTransitionState>( - ObservableTransitionState.Transition( - fromScene = SceneKey.Shade, - toScene = SceneKey.QuickSettings, - progress = flowOf(0.5f), - isInitiatedByUserInput = false, - isUserInputOngoing = flowOf(false), - ) - ) - underTest.setTransitionState(transitionState) - - assertThat(underTest.transitioning(SceneKey.Shade, SceneKey.Lockscreen).value).isFalse() - } - - @Test - fun transitioning_correctFromAndToScenes_true() = - testScope.runTest { - val transitionState = - MutableStateFlow<ObservableTransitionState>( - ObservableTransitionState.Transition( - fromScene = SceneKey.Shade, - toScene = SceneKey.Lockscreen, - progress = flowOf(0.5f), - isInitiatedByUserInput = false, - isUserInputOngoing = flowOf(false), - ) - ) - val transitioning by - collectLastValue(underTest.transitioning(SceneKey.Shade, SceneKey.Lockscreen)) - underTest.setTransitionState(transitionState) - - assertThat(transitioning).isTrue() - } - - @Test - fun transitioning_updates() = - testScope.runTest { - val transitionState = - MutableStateFlow<ObservableTransitionState>( - ObservableTransitionState.Idle(SceneKey.Shade) - ) - val transitioning by - collectLastValue(underTest.transitioning(SceneKey.Shade, SceneKey.Lockscreen)) - underTest.setTransitionState(transitionState) - - assertThat(transitioning).isFalse() - - transitionState.value = - ObservableTransitionState.Transition( - fromScene = SceneKey.Shade, - toScene = SceneKey.Lockscreen, - progress = flowOf(0.5f), - isInitiatedByUserInput = false, - isUserInputOngoing = flowOf(false), - ) - assertThat(transitioning).isTrue() - - transitionState.value = ObservableTransitionState.Idle(SceneKey.Lockscreen) - assertThat(transitioning).isFalse() - } - - @Test fun isTransitionUserInputOngoing_idle_false() = testScope.runTest { val transitionState = diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt index e9a2a3befb03..c0aaab3ad6e1 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt @@ -9,8 +9,6 @@ import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.Flags import com.android.systemui.kosmos.testScope import com.android.systemui.scene.domain.interactor.sceneInteractor -import com.android.systemui.scene.shared.model.ObservableTransitionState -import com.android.systemui.scene.shared.model.SceneKey import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository import com.android.systemui.statusbar.pipeline.airplane.domain.interactor.AirplaneModeInteractor import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel @@ -22,8 +20,6 @@ import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnec import com.android.systemui.testKosmos import com.android.systemui.util.mockito.mock import com.google.common.truth.Truth.assertThat -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test @@ -74,74 +70,6 @@ class ShadeHeaderViewModelTest : SysuiTestCase() { } @Test - fun isTransitioning_idle_false() = - testScope.runTest { - val isTransitioning by collectLastValue(underTest.isTransitioning) - sceneInteractor.setTransitionState( - MutableStateFlow(ObservableTransitionState.Idle(SceneKey.Shade)) - ) - - assertThat(isTransitioning).isFalse() - } - - @Test - fun isTransitioning_shadeToQs_true() = - testScope.runTest { - val isTransitioning by collectLastValue(underTest.isTransitioning) - sceneInteractor.setTransitionState( - MutableStateFlow( - ObservableTransitionState.Transition( - fromScene = SceneKey.Shade, - toScene = SceneKey.QuickSettings, - progress = MutableStateFlow(0.5f), - isInitiatedByUserInput = false, - isUserInputOngoing = flowOf(false), - ) - ) - ) - - assertThat(isTransitioning).isTrue() - } - - @Test - fun isTransitioning_qsToShade_true() = - testScope.runTest { - val isTransitioning by collectLastValue(underTest.isTransitioning) - sceneInteractor.setTransitionState( - MutableStateFlow( - ObservableTransitionState.Transition( - fromScene = SceneKey.QuickSettings, - toScene = SceneKey.Shade, - progress = MutableStateFlow(0.5f), - isInitiatedByUserInput = false, - isUserInputOngoing = flowOf(false), - ) - ) - ) - - assertThat(isTransitioning).isTrue() - } - - @Test - fun isTransitioning_otherTransition_false() = - testScope.runTest { - val isTransitioning by collectLastValue(underTest.isTransitioning) - sceneInteractor.setTransitionState( - MutableStateFlow( - ObservableTransitionState.Transition( - fromScene = SceneKey.Gone, - toScene = SceneKey.Shade, - progress = MutableStateFlow(0.5f), - isInitiatedByUserInput = false, - isUserInputOngoing = flowOf(false), - ) - ) - ) - - assertThat(isTransitioning).isFalse() - } - - @Test fun mobileSubIds_update() = testScope.runTest { val mobileSubIds by collectLastValue(underTest.mobileSubIds) diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt index b3d2e0918db6..b9e9fe7684e9 100644 --- a/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt @@ -171,28 +171,6 @@ constructor( return repository.setVisible(isVisible) } - /** True if there is a transition happening from and to the specified scenes. */ - fun transitioning(from: SceneKey, to: SceneKey): StateFlow<Boolean> { - fun transitioning( - state: ObservableTransitionState, - from: SceneKey, - to: SceneKey, - ): Boolean { - return (state as? ObservableTransitionState.Transition)?.let { - it.fromScene == from && it.toScene == to - } - ?: false - } - - return transitionState - .map { state -> transitioning(state, from, to) } - .stateIn( - scope = applicationScope, - started = SharingStarted.WhileSubscribed(), - initialValue = transitioning(transitionState.value, from, to), - ) - } - /** * Binds the given flow so the system remembers it. * diff --git a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt index 51276c6560a4..314637e4b27e 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt @@ -22,12 +22,11 @@ import android.content.IntentFilter import android.icu.text.DateFormat import android.icu.text.DisplayContext import android.os.UserHandle -import com.android.systemui.res.R import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.res.R import com.android.systemui.scene.domain.interactor.SceneInteractor -import com.android.systemui.scene.shared.model.SceneKey import com.android.systemui.statusbar.pipeline.mobile.domain.interactor.MobileIconsInteractor import com.android.systemui.statusbar.pipeline.mobile.ui.viewmodel.MobileIconsViewModel import java.util.Date @@ -38,7 +37,6 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach @@ -57,16 +55,6 @@ constructor( val mobileIconsViewModel: MobileIconsViewModel, broadcastDispatcher: BroadcastDispatcher, ) { - /** True if we are transitioning between Shade and QuickSettings scenes, in either direction. */ - val isTransitioning = - combine( - sceneInteractor.transitioning(from = SceneKey.Shade, to = SceneKey.QuickSettings), - sceneInteractor.transitioning(from = SceneKey.QuickSettings, to = SceneKey.Shade) - ) { shadeToQuickSettings, quickSettingsToShade -> - shadeToQuickSettings || quickSettingsToShade - } - .stateIn(applicationScope, SharingStarted.WhileSubscribed(), false) - /** True if there is exactly one mobile connection. */ val isSingleCarrier: StateFlow<Boolean> = mobileIconsInteractor.isSingleCarrier |