diff options
| author | 2023-11-09 14:04:37 +0000 | |
|---|---|---|
| committer | 2023-11-09 14:04:37 +0000 | |
| commit | 31c1176fa32f4909370fc3183ddf388e927973ed (patch) | |
| tree | 5eeabb108979877399937d1bfc397155a665195c | |
| parent | e1dd7544aba8e0db355e39c252403264dec7d8fd (diff) | |
| parent | d5eb32f0dc90fd7efea771ccdeaff06c869442f7 (diff) | |
Merge "Make ConnectedDisplayInteractor flows run in bg dispatcher" into main
2 files changed, 8 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt b/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt index cf868856c419..20a9e5d572c9 100644 --- a/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt @@ -20,15 +20,18 @@ import android.companion.virtual.VirtualDeviceManager import android.companion.virtual.flags.Flags import android.view.Display import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.display.data.repository.DisplayRepository import com.android.systemui.display.domain.interactor.ConnectedDisplayInteractor.PendingDisplay import com.android.systemui.display.domain.interactor.ConnectedDisplayInteractor.State import com.android.systemui.keyguard.data.repository.KeyguardRepository import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map /** Provides information about an external connected display. */ @@ -81,6 +84,7 @@ constructor( private val virtualDeviceManager: VirtualDeviceManager, keyguardRepository: KeyguardRepository, displayRepository: DisplayRepository, + @Background backgroundCoroutineDispatcher: CoroutineDispatcher, ) : ConnectedDisplayInteractor { override val connectedDisplayState: Flow<State> = @@ -101,6 +105,7 @@ constructor( State.CONNECTED } } + .flowOn(backgroundCoroutineDispatcher) .distinctUntilChanged() override val connectedDisplayAddition: Flow<Unit> = @@ -108,6 +113,7 @@ constructor( .filter { it != null && (isExternalDisplay(it) || isVirtualDeviceOwnedMirrorDisplay(it)) } + .flowOn(backgroundCoroutineDispatcher) .map {} // map to Unit // Provides the pending display only if the lockscreen is unlocked diff --git a/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt index 0db3de2ce0dd..1f18705edfdb 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt @@ -63,7 +63,8 @@ class ConnectedDisplayInteractorTest : SysuiTestCase() { ConnectedDisplayInteractorImpl( virtualDeviceManager, fakeKeyguardRepository, - fakeDisplayRepository + fakeDisplayRepository, + UnconfinedTestDispatcher(), ) private val testScope = TestScope(UnconfinedTestDispatcher()) |