Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d61c07c4 authored by Alina Zaidi's avatar Alina Zaidi Committed by Android (Google) Code Review
Browse files

Merge "Make sure animation in StatusBarOrchestrator are in main thread" into main

parents b87170e4 459b9679
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -18,8 +18,10 @@ package com.android.systemui.statusbar.core

import android.view.Display
import android.view.View
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.systemui.CoreStartable
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.demomode.DemoModeController
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.DarkIconDispatcher
@@ -46,12 +48,12 @@ import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import java.io.PrintWriter
import java.util.Optional
import kotlin.coroutines.CoroutineContext
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChangedBy
import kotlinx.coroutines.flow.filterNotNull
import com.android.app.tracing.coroutines.launchTraced as launch

/**
 * Class responsible for managing the lifecycle and state of the status bar.
@@ -68,6 +70,7 @@ constructor(
    @Assisted private val statusBarModeRepository: StatusBarModePerDisplayRepository,
    @Assisted private val statusBarInitializer: StatusBarInitializer,
    @Assisted private val statusBarWindowController: StatusBarWindowController,
    @Main private val mainContext: CoroutineContext,
    private val demoModeController: DemoModeController,
    private val pluginDependencyProvider: PluginDependencyProvider,
    private val autoHideController: AutoHideController,
@@ -141,7 +144,8 @@ constructor(
    override fun start() {
        StatusBarConnectedDisplays.assertInNewMode()
        coroutineScope
            .launch {
            // Perform animations on the main thread to prevent crashes.
            .launch(context = mainContext) {
                dumpManager.registerCriticalDumpable(dumpableName, this@StatusBarOrchestrator)
                launch {
                    controllerAndBouncerShowing.collect { (controller, bouncerShowing) ->
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ val Kosmos.statusBarOrchestrator by
            fakeStatusBarModePerDisplayRepository,
            fakeStatusBarInitializer,
            fakeStatusBarWindowController,
            applicationCoroutineScope.coroutineContext,
            mockDemoModeController,
            mockPluginDependencyProvider,
            mockAutoHideController,