Loading packages/SystemUI/src/com/android/systemui/accessibility/data/repository/AccessibilityRepository.kt +10 −6 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ package com.android.systemui.accessibility.data.repository import android.view.accessibility.AccessibilityManager import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import dagger.Module import dagger.Provides import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged Loading @@ -38,24 +38,28 @@ interface AccessibilityRepository { } } private const val TAG = "AccessibilityRepository" private class AccessibilityRepositoryImpl( manager: AccessibilityManager, ) : AccessibilityRepository { override val isTouchExplorationEnabled: Flow<Boolean> = conflatedCallbackFlow { tracedConflatedCallbackFlow(TAG) { val listener = TouchExplorationStateChangeListener(::trySend) manager.addTouchExplorationStateChangeListener(listener) trySend(manager.isTouchExplorationEnabled) awaitClose { manager.removeTouchExplorationStateChangeListener(listener) } tracedAwaitClose(TAG) { manager.removeTouchExplorationStateChangeListener(listener) } } .distinctUntilChanged() override val isEnabled: Flow<Boolean> = conflatedCallbackFlow { tracedConflatedCallbackFlow(TAG) { val listener = AccessibilityManager.AccessibilityStateChangeListener(::trySend) manager.addAccessibilityStateChangeListener(listener) trySend(manager.isEnabled) awaitClose { manager.removeAccessibilityStateChangeListener(listener) } tracedAwaitClose(TAG) { manager.removeAccessibilityStateChangeListener(listener) } } .distinctUntilChanged() } Loading packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +6 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.os.DeadObjectException import android.os.Handler import android.os.PowerManager import android.os.RemoteException import android.os.Trace import android.util.Log import android.view.RemoteAnimationTarget import android.view.SurfaceControl Loading Loading @@ -385,10 +386,15 @@ class KeyguardUnlockAnimationController @Inject constructor( valueAnimator.animatedValue as Float, openingWallpaperTargets) } addListener(object : AnimatorListenerAdapter() { override fun onAnimationStart(animation: Animator) { super.onAnimationStart(animation) Trace.asyncTraceBegin(Trace.TRACE_TAG_APP, "WallpaperAlphaAnimation", 0) } override fun onAnimationEnd(animation: Animator) { Log.d(TAG, "wallpaperCannedUnlockAnimator#onAnimationEnd") keyguardViewMediator.get().exitKeyguardAndFinishSurfaceBehindRemoteAnimation( false /* cancelled */) Trace.asyncTraceEnd(Trace.TRACE_TAG_APP, "WallpaperAlphaAnimation", 0) } }) } Loading packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceRemoteUserSelectionManager.kt +13 −12 Original line number Diff line number Diff line Loading @@ -19,8 +19,9 @@ package com.android.systemui.keyguard.data.quickaffordance import android.content.Context import android.os.UserHandle import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.settings.UserTracker Loading @@ -28,7 +29,6 @@ import com.android.systemui.shared.customization.data.content.CustomizationProvi import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow Loading @@ -55,7 +55,8 @@ constructor( private val userHandle: UserHandle, ) : KeyguardQuickAffordanceSelectionManager { private val userId: Flow<Int> = conflatedCallbackFlow { private val userId: Flow<Int> = tracedConflatedCallbackFlow("userId") { val callback = object : UserTracker.Callback { override fun onUserChanged(newUser: Int, userContext: Context) { Loading @@ -66,7 +67,7 @@ constructor( userTracker.addCallback(callback) { it.run() } trySendWithFailureLogging(userTracker.userId, TAG) awaitClose { userTracker.removeCallback(callback) } tracedAwaitClose("userId") { userTracker.removeCallback(callback) } } private val clientOrNull: StateFlow<CustomizationProviderClient?> = Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt +15 −15 Original line number Diff line number Diff line Loading @@ -23,9 +23,10 @@ import android.app.StatusBarManager import android.graphics.Point import android.util.MathUtils import com.android.app.animation.Interpolators import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepository import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.shared.model.NotificationContainerBounds import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -58,7 +59,6 @@ import javax.inject.Inject import javax.inject.Provider import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow Loading Loading @@ -198,21 +198,21 @@ constructor( val isActiveDreamLockscreenHosted: StateFlow<Boolean> = repository.isActiveDreamLockscreenHosted /** Event for when the camera gesture is detected */ val onCameraLaunchDetected: Flow<CameraLaunchSourceModel> = conflatedCallbackFlow { val onCameraLaunchDetected: Flow<CameraLaunchSourceModel> = tracedConflatedCallbackFlow("KeyguardInteractor#onCameraLaunchDetected") { val callback = object : CommandQueue.Callbacks { override fun onCameraLaunchGestureDetected(source: Int) { trySendWithFailureLogging( cameraLaunchSourceIntToModel(source), TAG, "updated onCameraLaunchGestureDetected" ) "updated onCameraLaunchGestureDetected") } } commandQueue.addCallback(callback) awaitClose { commandQueue.removeCallback(callback) } tracedAwaitClose("onCameraLaunchDetected") { commandQueue.removeCallback(callback) } } /** Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardQuickAffordancesCombinedViewModel.kt +2 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.keyguard.ui.viewmodel import androidx.annotation.VisibleForTesting import com.android.app.tracing.FlowTracing.traceEmissionCount import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor Loading Loading @@ -229,7 +230,7 @@ constructor( ) } .distinctUntilChanged() } }.traceEmissionCount({"QuickAfforcances#button${position.toSlotId()}"}) } private fun KeyguardQuickAffordanceModel.toViewModel( Loading Loading
packages/SystemUI/src/com/android/systemui/accessibility/data/repository/AccessibilityRepository.kt +10 −6 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ package com.android.systemui.accessibility.data.repository import android.view.accessibility.AccessibilityManager import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import dagger.Module import dagger.Provides import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.distinctUntilChanged Loading @@ -38,24 +38,28 @@ interface AccessibilityRepository { } } private const val TAG = "AccessibilityRepository" private class AccessibilityRepositoryImpl( manager: AccessibilityManager, ) : AccessibilityRepository { override val isTouchExplorationEnabled: Flow<Boolean> = conflatedCallbackFlow { tracedConflatedCallbackFlow(TAG) { val listener = TouchExplorationStateChangeListener(::trySend) manager.addTouchExplorationStateChangeListener(listener) trySend(manager.isTouchExplorationEnabled) awaitClose { manager.removeTouchExplorationStateChangeListener(listener) } tracedAwaitClose(TAG) { manager.removeTouchExplorationStateChangeListener(listener) } } .distinctUntilChanged() override val isEnabled: Flow<Boolean> = conflatedCallbackFlow { tracedConflatedCallbackFlow(TAG) { val listener = AccessibilityManager.AccessibilityStateChangeListener(::trySend) manager.addAccessibilityStateChangeListener(listener) trySend(manager.isEnabled) awaitClose { manager.removeAccessibilityStateChangeListener(listener) } tracedAwaitClose(TAG) { manager.removeAccessibilityStateChangeListener(listener) } } .distinctUntilChanged() } Loading
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardUnlockAnimationController.kt +6 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.os.DeadObjectException import android.os.Handler import android.os.PowerManager import android.os.RemoteException import android.os.Trace import android.util.Log import android.view.RemoteAnimationTarget import android.view.SurfaceControl Loading Loading @@ -385,10 +386,15 @@ class KeyguardUnlockAnimationController @Inject constructor( valueAnimator.animatedValue as Float, openingWallpaperTargets) } addListener(object : AnimatorListenerAdapter() { override fun onAnimationStart(animation: Animator) { super.onAnimationStart(animation) Trace.asyncTraceBegin(Trace.TRACE_TAG_APP, "WallpaperAlphaAnimation", 0) } override fun onAnimationEnd(animation: Animator) { Log.d(TAG, "wallpaperCannedUnlockAnimator#onAnimationEnd") keyguardViewMediator.get().exitKeyguardAndFinishSurfaceBehindRemoteAnimation( false /* cancelled */) Trace.asyncTraceEnd(Trace.TRACE_TAG_APP, "WallpaperAlphaAnimation", 0) } }) } Loading
packages/SystemUI/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceRemoteUserSelectionManager.kt +13 −12 Original line number Diff line number Diff line Loading @@ -19,8 +19,9 @@ package com.android.systemui.keyguard.data.quickaffordance import android.content.Context import android.os.UserHandle import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.settings.UserTracker Loading @@ -28,7 +29,6 @@ import com.android.systemui.shared.customization.data.content.CustomizationProvi import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow Loading @@ -55,7 +55,8 @@ constructor( private val userHandle: UserHandle, ) : KeyguardQuickAffordanceSelectionManager { private val userId: Flow<Int> = conflatedCallbackFlow { private val userId: Flow<Int> = tracedConflatedCallbackFlow("userId") { val callback = object : UserTracker.Callback { override fun onUserChanged(newUser: Int, userContext: Context) { Loading @@ -66,7 +67,7 @@ constructor( userTracker.addCallback(callback) { it.run() } trySendWithFailureLogging(userTracker.userId, TAG) awaitClose { userTracker.removeCallback(callback) } tracedAwaitClose("userId") { userTracker.removeCallback(callback) } } private val clientOrNull: StateFlow<CustomizationProviderClient?> = Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt +15 −15 Original line number Diff line number Diff line Loading @@ -23,9 +23,10 @@ import android.app.StatusBarManager import android.graphics.Point import android.util.MathUtils import com.android.app.animation.Interpolators import com.android.app.tracing.FlowTracing.tracedAwaitClose import com.android.app.tracing.FlowTracing.tracedConflatedCallbackFlow import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepository import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.shared.model.NotificationContainerBounds import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -58,7 +59,6 @@ import javax.inject.Inject import javax.inject.Provider import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow Loading Loading @@ -198,21 +198,21 @@ constructor( val isActiveDreamLockscreenHosted: StateFlow<Boolean> = repository.isActiveDreamLockscreenHosted /** Event for when the camera gesture is detected */ val onCameraLaunchDetected: Flow<CameraLaunchSourceModel> = conflatedCallbackFlow { val onCameraLaunchDetected: Flow<CameraLaunchSourceModel> = tracedConflatedCallbackFlow("KeyguardInteractor#onCameraLaunchDetected") { val callback = object : CommandQueue.Callbacks { override fun onCameraLaunchGestureDetected(source: Int) { trySendWithFailureLogging( cameraLaunchSourceIntToModel(source), TAG, "updated onCameraLaunchGestureDetected" ) "updated onCameraLaunchGestureDetected") } } commandQueue.addCallback(callback) awaitClose { commandQueue.removeCallback(callback) } tracedAwaitClose("onCameraLaunchDetected") { commandQueue.removeCallback(callback) } } /** Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardQuickAffordancesCombinedViewModel.kt +2 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.keyguard.ui.viewmodel import androidx.annotation.VisibleForTesting import com.android.app.tracing.FlowTracing.traceEmissionCount import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor Loading Loading @@ -229,7 +230,7 @@ constructor( ) } .distinctUntilChanged() } }.traceEmissionCount({"QuickAfforcances#button${position.toSlotId()}"}) } private fun KeyguardQuickAffordanceModel.toViewModel( Loading