Merge "Dagger Providers for CoroutineScope + Dispatchers" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-07-15 07:18:30 +00:00
committed by Android (Google) Code Review
2 changed files with 43 additions and 0 deletions

View File

@@ -82,6 +82,7 @@ import com.android.systemui.unfold.SysUIUnfoldModule;
import com.android.systemui.user.UserModule;
import com.android.systemui.util.concurrency.SysUIConcurrencyModule;
import com.android.systemui.util.dagger.UtilModule;
import com.android.systemui.util.kotlin.CoroutinesModule;
import com.android.systemui.util.sensors.SensorModule;
import com.android.systemui.util.settings.SettingsUtilModule;
import com.android.systemui.util.time.SystemClock;
@@ -114,6 +115,7 @@ import dagger.Provides;
AssistModule.class,
BiometricsModule.class,
ClockModule.class,
CoroutinesModule.class,
DreamModule.class,
ControlsModule.class,
DemoModeModule.class,

View File

@@ -0,0 +1,41 @@
package com.android.systemui.util.kotlin
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import dagger.Module
import dagger.Provides
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
/** Providers for various coroutines-related constructs. */
@Module
object CoroutinesModule {
@Provides
@SysUISingleton
@Application
fun applicationScope(
@Main dispatcher: CoroutineDispatcher,
): CoroutineScope = CoroutineScope(dispatcher)
@Provides
@SysUISingleton
@Main
fun mainDispatcher(): CoroutineDispatcher = Dispatchers.Main.immediate
/**
* Provide a [CoroutineDispatcher] backed by a thread pool containing at most X threads, where
* X is the number of CPU cores available.
*
* Because there are multiple threads at play, there is no serialization order guarantee. You
* should use a [kotlinx.coroutines.channels.Channel] for serialization if necessary.
*
* @see Dispatchers.Default
*/
@Provides
@SysUISingleton
@Background
fun bgDispatcher(): CoroutineDispatcher = Dispatchers.Default
}