summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shawn Lee <syeonlee@google.com> 2024-01-29 19:36:40 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-01-29 19:36:40 +0000
commitc97f4daa53a059cc4a061f32cc31d79457c6dec6 (patch)
tree666bf246d4fc586e1bebd4327e3fdb786ef80baf
parent8608a61217ab43b2e38b11130cba129226948356 (diff)
parent36dcd63c4310a72fc8a8ce44888b1c856bc6d535 (diff)
Merge "Delete SceneInteractor.transitioning" into main
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeHeader.kt9
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt99
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModelTest.kt72
-rw-r--r--packages/SystemUI/src/com/android/systemui/scene/domain/interactor/SceneInteractor.kt22
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/ui/viewmodel/ShadeHeaderViewModel.kt14
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