Merge "Dagger Providers for CoroutineScope + Dispatchers" into tm-qpr-dev am: 3927e44f00
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19093600 Change-Id: If8f7dd805e58503773b0575b8207c42f5103a068 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -82,6 +82,7 @@ import com.android.systemui.unfold.SysUIUnfoldModule;
|
|||||||
import com.android.systemui.user.UserModule;
|
import com.android.systemui.user.UserModule;
|
||||||
import com.android.systemui.util.concurrency.SysUIConcurrencyModule;
|
import com.android.systemui.util.concurrency.SysUIConcurrencyModule;
|
||||||
import com.android.systemui.util.dagger.UtilModule;
|
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.sensors.SensorModule;
|
||||||
import com.android.systemui.util.settings.SettingsUtilModule;
|
import com.android.systemui.util.settings.SettingsUtilModule;
|
||||||
import com.android.systemui.util.time.SystemClock;
|
import com.android.systemui.util.time.SystemClock;
|
||||||
@@ -114,6 +115,7 @@ import dagger.Provides;
|
|||||||
AssistModule.class,
|
AssistModule.class,
|
||||||
BiometricsModule.class,
|
BiometricsModule.class,
|
||||||
ClockModule.class,
|
ClockModule.class,
|
||||||
|
CoroutinesModule.class,
|
||||||
DreamModule.class,
|
DreamModule.class,
|
||||||
ControlsModule.class,
|
ControlsModule.class,
|
||||||
DemoModeModule.class,
|
DemoModeModule.class,
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user