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

Commit 05bd34fc authored by Michael Mikhail's avatar Michael Mikhail Committed by Android (Google) Code Review
Browse files

Merge "Use background dispatcher instead of executor" into main

parents ea1e8487 af8ae674
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,
        )