summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/scene/domain/resolver/HomeSceneFamilyResolver.kt18
-rw-r--r--packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt40
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt14
4 files changed, 59 insertions, 15 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/resolver/HomeSceneFamilyResolver.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/resolver/HomeSceneFamilyResolver.kt
index 2a0a22f32601..6e79d568761f 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/resolver/HomeSceneFamilyResolver.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/resolver/HomeSceneFamilyResolver.kt
@@ -18,6 +18,7 @@
package com.android.systemui.scene.domain.resolver
+import android.util.Log
import com.android.compose.animation.scene.SceneKey
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
@@ -85,8 +86,8 @@ constructor(
isUnlocked: Boolean,
isDreamingWithOverlay: Boolean,
isAbleToDream: Boolean,
- ): SceneKey =
- when {
+ ): SceneKey {
+ val result = when {
// Dream can run even if Keyguard is disabled, thus it has the highest priority here.
isDreamingWithOverlay && isAbleToDream -> Scenes.Dream
!isKeyguardEnabled -> Scenes.Gone
@@ -95,8 +96,21 @@ constructor(
!isUnlocked -> Scenes.Lockscreen
else -> Scenes.Gone
}
+ Log.d(TAG, "homeScene emitting $result, values:")
+ Log.d(TAG, " isKeyguardEnabled=$isKeyguardEnabled")
+ Log.d(TAG, " canSwipeToEnter=$canSwipeToEnter")
+ Log.d(TAG, " isDeviceEntered=$isDeviceEntered" )
+ Log.d(TAG, " isUnlocked=$isUnlocked")
+ Log.d(TAG, " isDreamingWithOverlay=$isDreamingWithOverlay")
+ Log.d(TAG, " isAbleToDream=$isAbleToDream")
+ Log.d(TAG, "")
+ return result
+ }
companion object {
+
+ private const val TAG = "HomeSceneFamilyResolver"
+
val homeScenes =
setOf(
Scenes.Gone,
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
index 8657c1723507..ecd002705c60 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
@@ -564,7 +564,7 @@ constructor(
.collect {
switchToScene(
targetSceneKey = Scenes.Lockscreen,
- loggingReason = "device became non-interactive",
+ loggingReason = "device became non-interactive (SceneContainerStartable)",
)
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt
index a653ca2f80a9..b5e171043741 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorImpl.kt
@@ -16,6 +16,7 @@
package com.android.systemui.shade.domain.interactor
+import android.util.Log
import com.android.app.tracing.coroutines.flow.flowName
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
@@ -38,6 +39,7 @@ import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.stateIn
/** The non-empty SceneInteractor implementation. */
@@ -98,18 +100,36 @@ constructor(
override val isShadeTouchable: Flow<Boolean> =
combine(
- powerInteractor.isAsleep,
- keyguardTransitionInteractor.isInTransition(Edge.create(to = KeyguardState.AOD)),
- keyguardRepository.dozeTransitionModel.map { it.to == DozeStateModel.DOZE_PULSING },
- ) { isAsleep, goingToSleep, isPulsing ->
- when {
- // If the device is going to sleep, only accept touches if we're still
- // animating
- goingToSleep -> dozeParams.shouldControlScreenOff()
+ powerInteractor.isAsleep
+ .onEach { Log.d(TAG, "isShadeTouchable: upstream isAsleep=$it") },
+ keyguardTransitionInteractor
+ .isInTransition(Edge.create(to = KeyguardState.AOD))
+ .onEach {
+ Log.d(
+ TAG,
+ "isShadeTouchable: upstream isTransitioningToAod=$it",
+ )
+ },
+ keyguardRepository.dozeTransitionModel
+ .map { it.to == DozeStateModel.DOZE_PULSING }
+ .onEach {
+ Log.d(TAG, "isShadeTouchable: upstream isPulsing=$it")
+ },
+ ) { isAsleep, isTransitioningToAod, isPulsing ->
+ val downstream = when {
+ // If the device is transitioning to AOD, only accept touches if
+ // still animating.
+ isTransitioningToAod -> dozeParams.shouldControlScreenOff()
// If the device is asleep, only accept touches if there's a pulse
isAsleep -> isPulsing
else -> true
}
+ Log.d(TAG, "isShadeTouchable emitting $downstream, values:")
+ Log.d(TAG, " isAsleep=$isAsleep")
+ Log.d(TAG, " isTransitioningToAod=$isTransitioningToAod")
+ Log.d(TAG, " isPulsing=$isPulsing")
+ Log.d(TAG, "")
+ downstream
}
override val isExpandToQsEnabled: Flow<Boolean> =
@@ -128,4 +148,8 @@ constructor(
disableFlags.isQuickSettingsEnabled() &&
!isDozing
}
+
+ companion object {
+ private const val TAG = "ShadeInteractor"
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt
index 765810810bb8..992385c8d80e 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/domain/interactor/ShadeInteractorSceneContainerImpl.kt
@@ -199,11 +199,14 @@ constructor(
)
} else if (transitionKey == Instant) {
// TODO(b/356596436): Define instant transition instead of snapToScene().
- sceneInteractor.snapToScene(toScene = SceneFamilies.Home, loggingReason = loggingReason)
+ sceneInteractor.snapToScene(
+ toScene = SceneFamilies.Home,
+ loggingReason = loggingReason + " (collapseNotificationsShade)",
+ )
} else {
sceneInteractor.changeScene(
toScene = SceneFamilies.Home,
- loggingReason = loggingReason,
+ loggingReason = loggingReason + " (collapseNotificationsShade)",
transitionKey =
transitionKey ?: ToSplitShade.takeIf { shadeModeInteractor.isSplitShade },
)
@@ -230,11 +233,14 @@ constructor(
if (bypassNotificationsShade || isSplitShade) SceneFamilies.Home else Scenes.Shade
if (transitionKey == Instant) {
// TODO(b/356596436): Define instant transition instead of snapToScene().
- sceneInteractor.snapToScene(toScene = targetScene, loggingReason = loggingReason)
+ sceneInteractor.snapToScene(
+ toScene = targetScene,
+ loggingReason = loggingReason + " (collapseQuickSettingsShade)",
+ )
} else {
sceneInteractor.changeScene(
toScene = targetScene,
- loggingReason = loggingReason,
+ loggingReason = loggingReason + " (collapseQuickSettingsShade)",
transitionKey = transitionKey ?: ToSplitShade.takeIf { isSplitShade },
)
}