Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt +35 −18 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.systemui.communal.domain.interactor.CommunalInteractor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.PulseExpansionInteractor Loading @@ -47,6 +48,7 @@ import com.android.systemui.statusbar.notification.icon.ui.viewmodel.Notificatio import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.phone.ScreenOffAnimationController import com.android.systemui.util.kotlin.BooleanFlowOperators.anyOf import com.android.systemui.util.kotlin.FlowDumperImpl import com.android.systemui.util.kotlin.pairwise import com.android.systemui.util.kotlin.sample import com.android.systemui.util.ui.AnimatableEvent Loading Loading @@ -134,17 +136,21 @@ constructor( private val aodBurnInViewModel: AodBurnInViewModel, private val shadeInteractor: ShadeInteractor, wallpaperFocalAreaInteractor: WallpaperFocalAreaInteractor, ) { dumpManager: DumpManager, ) : FlowDumperImpl(dumpManager) { val burnInLayerVisibility: Flow<Int> = keyguardTransitionInteractor.startedKeyguardTransitionStep .filter { it.to == AOD || it.to == LOCKSCREEN } .map { VISIBLE } .dumpWhileCollecting("burnInLayerVisibility") val goneToAodTransition = keyguardTransitionInteractor.transition( keyguardTransitionInteractor .transition( edge = Edge.create(Scenes.Gone, AOD), edgeWithoutSceneContainer = Edge.create(GONE, AOD), ) .dumpWhileCollecting("goneToAodTransition") private val goneToAodTransitionRunning: Flow<Boolean> = goneToAodTransition Loading Loading @@ -222,13 +228,15 @@ constructor( ) /** Last point that the root view was tapped */ val lastRootViewTapPosition: Flow<Point?> = keyguardInteractor.lastRootViewTapPosition val lastRootViewTapPosition: Flow<Point?> = keyguardInteractor.lastRootViewTapPosition.dumpWhileCollecting("lastRootViewTapPosition") /** * The keyguard root view can be clipped as the shade is pulled down, typically only for * non-split shade cases. */ val topClippingBounds: Flow<Int?> = keyguardInteractor.topClippingBounds val topClippingBounds: Flow<Int?> = keyguardInteractor.topClippingBounds.dumpWhileCollecting("topClippingBounds") /** An observable for the alpha level for the entire keyguard root view. */ fun alpha(viewState: ViewStateAccessor): Flow<Float> { Loading Loading @@ -287,12 +295,18 @@ constructor( } } .distinctUntilChanged() .dumpWhileCollecting("alpha") } val scaleFromZoomOut: Flow<Float> = keyguardInteractor.zoomOut.map { 1 - it * PUSHBACK_SCALE_FOR_LOCKSCREEN } keyguardInteractor.zoomOut .map { 1 - it * PUSHBACK_SCALE_FOR_LOCKSCREEN } .dumpWhileCollecting("scaleFromZoomOut") val translationY: Flow<Float> = aodBurnInViewModel.movement.map { it.translationY.toFloat() } val translationY: Flow<Float> = aodBurnInViewModel.movement .map { it.translationY.toFloat() } .dumpWhileCollecting("translationY") val translationX: Flow<StateToValue> = merge( Loading @@ -302,15 +316,16 @@ constructor( lockscreenToGlanceableHubTransitionViewModel.keyguardTranslationX, glanceableHubToLockscreenTransitionViewModel.keyguardTranslationX, ) .dumpWhileCollecting("translationX") fun updateBurnInParams(params: BurnInParameters) { aodBurnInViewModel.updateBurnInParams(params) } val scale: Flow<BurnInScaleViewModel> = aodBurnInViewModel.movement.map { BurnInScaleViewModel(scale = it.scale, scaleClockOnly = it.scaleClockOnly) } aodBurnInViewModel.movement .map { BurnInScaleViewModel(scale = it.scale, scaleClockOnly = it.scaleClockOnly) } .dumpWhileCollecting("scale") val isAodPromotedNotifVisible: StateFlow<Boolean> = keyguardTransitionInteractor Loading @@ -321,6 +336,7 @@ constructor( started = SharingStarted.WhileSubscribed(), initialValue = false, ) .dumpValue("isAodPromotedNotifVisible") /** Is the notification icon container visible? */ val isNotifIconContainerVisible: StateFlow<AnimatedValue<Boolean>> = Loading Loading @@ -376,6 +392,7 @@ constructor( started = SharingStarted.WhileSubscribed(), initialValue = AnimatedValue.NotAnimating(false), ) .dumpValue("isNotifIconContainerVisible") fun onNotificationContainerBoundsChanged(top: Float, bottom: Float, animate: Boolean = false) { keyguardInteractor.setNotificationContainerBounds( Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractor.kt +10 −2 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ package com.android.systemui.statusbar.notification.promoted.domain.interactor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.statusbar.notification.domain.interactor.ActiveNotificationsInteractor import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel.Style import com.android.systemui.util.kotlin.FlowDumperImpl import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map Loading @@ -27,11 +29,17 @@ import kotlinx.coroutines.flow.map @SysUISingleton class AODPromotedNotificationInteractor @Inject constructor(activeNotificationsInteractor: ActiveNotificationsInteractor) { constructor( activeNotificationsInteractor: ActiveNotificationsInteractor, dumpManager: DumpManager, ) : FlowDumperImpl(dumpManager) { val content: Flow<PromotedNotificationContentModel?> = activeNotificationsInteractor.topLevelRepresentativeNotifications.map { notifs -> notifs.firstNotNullOfOrNull { it.promotedContent } } val isPresent: Flow<Boolean> = content.map { (it != null) && (it.style != Style.Ineligible) } val isPresent: Flow<Boolean> = content .map { (it != null) && (it.style != Style.Ineligible) } .dumpWhileCollecting("isPresent") } packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.keyguard.ui.viewmodel import com.android.systemui.communal.domain.interactor.communalInteractor import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.dump.dumpManager import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.pulseExpansionInteractor Loading Loading @@ -90,5 +91,6 @@ val Kosmos.keyguardRootViewModel by Fixture { aodBurnInViewModel = aodBurnInViewModel, shadeInteractor = shadeInteractor, wallpaperFocalAreaInteractor = wallpaperFocalAreaInteractor, dumpManager = dumpManager, ) } packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractorKosmos.kt +3 −1 Original line number Diff line number Diff line Loading @@ -16,12 +16,14 @@ package com.android.systemui.statusbar.notification.promoted.domain.interactor import com.android.systemui.dump.dumpManager import com.android.systemui.kosmos.Kosmos import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor val Kosmos.aodPromotedNotificationInteractor by Kosmos.Fixture { AODPromotedNotificationInteractor( activeNotificationsInteractor = activeNotificationsInteractor activeNotificationsInteractor = activeNotificationsInteractor, dumpManager = dumpManager, ) } Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt +35 −18 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.systemui.communal.domain.interactor.CommunalInteractor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.PulseExpansionInteractor Loading @@ -47,6 +48,7 @@ import com.android.systemui.statusbar.notification.icon.ui.viewmodel.Notificatio import com.android.systemui.statusbar.phone.DozeParameters import com.android.systemui.statusbar.phone.ScreenOffAnimationController import com.android.systemui.util.kotlin.BooleanFlowOperators.anyOf import com.android.systemui.util.kotlin.FlowDumperImpl import com.android.systemui.util.kotlin.pairwise import com.android.systemui.util.kotlin.sample import com.android.systemui.util.ui.AnimatableEvent Loading Loading @@ -134,17 +136,21 @@ constructor( private val aodBurnInViewModel: AodBurnInViewModel, private val shadeInteractor: ShadeInteractor, wallpaperFocalAreaInteractor: WallpaperFocalAreaInteractor, ) { dumpManager: DumpManager, ) : FlowDumperImpl(dumpManager) { val burnInLayerVisibility: Flow<Int> = keyguardTransitionInteractor.startedKeyguardTransitionStep .filter { it.to == AOD || it.to == LOCKSCREEN } .map { VISIBLE } .dumpWhileCollecting("burnInLayerVisibility") val goneToAodTransition = keyguardTransitionInteractor.transition( keyguardTransitionInteractor .transition( edge = Edge.create(Scenes.Gone, AOD), edgeWithoutSceneContainer = Edge.create(GONE, AOD), ) .dumpWhileCollecting("goneToAodTransition") private val goneToAodTransitionRunning: Flow<Boolean> = goneToAodTransition Loading Loading @@ -222,13 +228,15 @@ constructor( ) /** Last point that the root view was tapped */ val lastRootViewTapPosition: Flow<Point?> = keyguardInteractor.lastRootViewTapPosition val lastRootViewTapPosition: Flow<Point?> = keyguardInteractor.lastRootViewTapPosition.dumpWhileCollecting("lastRootViewTapPosition") /** * The keyguard root view can be clipped as the shade is pulled down, typically only for * non-split shade cases. */ val topClippingBounds: Flow<Int?> = keyguardInteractor.topClippingBounds val topClippingBounds: Flow<Int?> = keyguardInteractor.topClippingBounds.dumpWhileCollecting("topClippingBounds") /** An observable for the alpha level for the entire keyguard root view. */ fun alpha(viewState: ViewStateAccessor): Flow<Float> { Loading Loading @@ -287,12 +295,18 @@ constructor( } } .distinctUntilChanged() .dumpWhileCollecting("alpha") } val scaleFromZoomOut: Flow<Float> = keyguardInteractor.zoomOut.map { 1 - it * PUSHBACK_SCALE_FOR_LOCKSCREEN } keyguardInteractor.zoomOut .map { 1 - it * PUSHBACK_SCALE_FOR_LOCKSCREEN } .dumpWhileCollecting("scaleFromZoomOut") val translationY: Flow<Float> = aodBurnInViewModel.movement.map { it.translationY.toFloat() } val translationY: Flow<Float> = aodBurnInViewModel.movement .map { it.translationY.toFloat() } .dumpWhileCollecting("translationY") val translationX: Flow<StateToValue> = merge( Loading @@ -302,15 +316,16 @@ constructor( lockscreenToGlanceableHubTransitionViewModel.keyguardTranslationX, glanceableHubToLockscreenTransitionViewModel.keyguardTranslationX, ) .dumpWhileCollecting("translationX") fun updateBurnInParams(params: BurnInParameters) { aodBurnInViewModel.updateBurnInParams(params) } val scale: Flow<BurnInScaleViewModel> = aodBurnInViewModel.movement.map { BurnInScaleViewModel(scale = it.scale, scaleClockOnly = it.scaleClockOnly) } aodBurnInViewModel.movement .map { BurnInScaleViewModel(scale = it.scale, scaleClockOnly = it.scaleClockOnly) } .dumpWhileCollecting("scale") val isAodPromotedNotifVisible: StateFlow<Boolean> = keyguardTransitionInteractor Loading @@ -321,6 +336,7 @@ constructor( started = SharingStarted.WhileSubscribed(), initialValue = false, ) .dumpValue("isAodPromotedNotifVisible") /** Is the notification icon container visible? */ val isNotifIconContainerVisible: StateFlow<AnimatedValue<Boolean>> = Loading Loading @@ -376,6 +392,7 @@ constructor( started = SharingStarted.WhileSubscribed(), initialValue = AnimatedValue.NotAnimating(false), ) .dumpValue("isNotifIconContainerVisible") fun onNotificationContainerBoundsChanged(top: Float, bottom: Float, animate: Boolean = false) { keyguardInteractor.setNotificationContainerBounds( Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractor.kt +10 −2 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ package com.android.systemui.statusbar.notification.promoted.domain.interactor import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dump.DumpManager import com.android.systemui.statusbar.notification.domain.interactor.ActiveNotificationsInteractor import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel import com.android.systemui.statusbar.notification.promoted.shared.model.PromotedNotificationContentModel.Style import com.android.systemui.util.kotlin.FlowDumperImpl import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map Loading @@ -27,11 +29,17 @@ import kotlinx.coroutines.flow.map @SysUISingleton class AODPromotedNotificationInteractor @Inject constructor(activeNotificationsInteractor: ActiveNotificationsInteractor) { constructor( activeNotificationsInteractor: ActiveNotificationsInteractor, dumpManager: DumpManager, ) : FlowDumperImpl(dumpManager) { val content: Flow<PromotedNotificationContentModel?> = activeNotificationsInteractor.topLevelRepresentativeNotifications.map { notifs -> notifs.firstNotNullOfOrNull { it.promotedContent } } val isPresent: Flow<Boolean> = content.map { (it != null) && (it.style != Style.Ineligible) } val isPresent: Flow<Boolean> = content .map { (it != null) && (it.style != Style.Ineligible) } .dumpWhileCollecting("isPresent") }
packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModelKosmos.kt +2 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.keyguard.ui.viewmodel import com.android.systemui.communal.domain.interactor.communalInteractor import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.dump.dumpManager import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.pulseExpansionInteractor Loading Loading @@ -90,5 +91,6 @@ val Kosmos.keyguardRootViewModel by Fixture { aodBurnInViewModel = aodBurnInViewModel, shadeInteractor = shadeInteractor, wallpaperFocalAreaInteractor = wallpaperFocalAreaInteractor, dumpManager = dumpManager, ) }
packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/promoted/domain/interactor/AODPromotedNotificationInteractorKosmos.kt +3 −1 Original line number Diff line number Diff line Loading @@ -16,12 +16,14 @@ package com.android.systemui.statusbar.notification.promoted.domain.interactor import com.android.systemui.dump.dumpManager import com.android.systemui.kosmos.Kosmos import com.android.systemui.statusbar.notification.domain.interactor.activeNotificationsInteractor val Kosmos.aodPromotedNotificationInteractor by Kosmos.Fixture { AODPromotedNotificationInteractor( activeNotificationsInteractor = activeNotificationsInteractor activeNotificationsInteractor = activeNotificationsInteractor, dumpManager = dumpManager, ) }