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

Commit af8ae674 authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Use background dispatcher instead of executor

Flag: ACONFIG com.android.systemui.media_controls_refactor DISABLED
Bug: 326281896
Test: atest SystemUiRoboTests:MediaControlViewModelTest
Change-Id: I2f5b552b396955c2b009cbf3dbb77b9a4c88c51b
parent e359b8ec
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import com.android.systemui.statusbar.notification.collection.provider.OnReorder
import com.android.systemui.statusbar.notification.collection.provider.VisualStabilityProvider
import com.android.systemui.util.Utils
import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
import java.util.concurrent.Executor
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
@@ -50,7 +49,6 @@ constructor(
    @Application private val applicationScope: CoroutineScope,
    @Application private val applicationContext: Context,
    @Background private val backgroundDispatcher: CoroutineDispatcher,
    @Background private val backgroundExecutor: Executor,
    private val visualStabilityProvider: VisualStabilityProvider,
    private val interactor: MediaCarouselInteractor,
    private val controlInteractorFactory: MediaControlInteractorFactory,
@@ -128,9 +126,9 @@ constructor(

    private fun createMediaControlViewModel(instanceId: InstanceId): MediaControlViewModel {
        return MediaControlViewModel(
            applicationScope = applicationScope,
            applicationContext = applicationContext,
            backgroundDispatcher = backgroundDispatcher,
            backgroundExecutor = backgroundExecutor,
            interactor = controlInteractorFactory.create(instanceId),
            logger = logger,
        )
+10 −6
Original line number Diff line number Diff line
@@ -41,19 +41,21 @@ import com.android.systemui.monet.ColorScheme
import com.android.systemui.monet.Style
import com.android.systemui.res.R
import com.android.systemui.util.kotlin.sample
import java.util.concurrent.Executor
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

/** Models UI state and handles user input for a media control. */
class MediaControlViewModel(
    @Application private val applicationContext: Context,
    @Application private val applicationScope: CoroutineScope,
    @Background private val backgroundDispatcher: CoroutineDispatcher,
    @Background private val backgroundExecutor: Executor,
    private val interactor: MediaControlInteractor,
    private val logger: MediaUiEventLogger,
) {
@@ -159,13 +161,15 @@ class MediaControlViewModel(
                if (model.isResume && model.resumeProgress != null) {
                    seekBarViewModel.updateStaticProgress(model.resumeProgress)
                } else {
                    backgroundExecutor.execute {
                    applicationScope.launch {
                        withContext(backgroundDispatcher) {
                            seekBarViewModel.updateController(
                                model.token?.let { MediaController(applicationContext, it) }
                            )
                        }
                    }
                }
            }
        )
    }

+0 −2
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.systemui.media.controls.ui.viewmodel

import android.content.applicationContext
import com.android.systemui.concurrency.fakeExecutor
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.kosmos.testDispatcher
@@ -33,7 +32,6 @@ val Kosmos.mediaCarouselViewModel by
            applicationScope = applicationCoroutineScope,
            applicationContext = applicationContext,
            backgroundDispatcher = testDispatcher,
            backgroundExecutor = fakeExecutor,
            visualStabilityProvider = VisualStabilityProvider(),
            interactor = mediaCarouselInteractor,
            controlInteractorFactory = mediaControlInteractorFactory,
+2 −2
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@
package com.android.systemui.media.controls.ui.viewmodel

import android.content.applicationContext
import com.android.systemui.concurrency.fakeExecutor
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.media.controls.domain.pipeline.interactor.mediaControlInteractor
import com.android.systemui.media.controls.util.mediaUiEventLogger
@@ -26,9 +26,9 @@ import com.android.systemui.media.controls.util.mediaUiEventLogger
val Kosmos.mediaControlViewModel by
    Kosmos.Fixture {
        MediaControlViewModel(
            applicationScope = applicationCoroutineScope,
            applicationContext = applicationContext,
            backgroundDispatcher = testDispatcher,
            backgroundExecutor = fakeExecutor,
            interactor = mediaControlInteractor,
            logger = mediaUiEventLogger,
        )