• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.util.kotlin
18 
19 import com.android.systemui.coroutines.newTracingContext
20 import com.android.systemui.dagger.qualifiers.Application
21 import com.android.systemui.dagger.qualifiers.Main
22 import dagger.Module
23 import dagger.Provides
24 import javax.inject.Singleton
25 import kotlin.coroutines.CoroutineContext
26 import kotlinx.coroutines.CoroutineDispatcher
27 import kotlinx.coroutines.CoroutineScope
28 import kotlinx.coroutines.Dispatchers
29 
30 /** Providers for various application-wide coroutines-related constructs. */
31 @Module
32 class GlobalCoroutinesModule {
33     @Provides
34     @Singleton
35     @Application
applicationScopenull36     fun applicationScope(@Main dispatcherContext: CoroutineContext): CoroutineScope =
37         CoroutineScope(dispatcherContext + newTracingContext("ApplicationScope"))
38 
39     @Provides
40     @Singleton
41     @Main
42     @Deprecated(
43         "Use @Main CoroutineContext instead",
44         ReplaceWith("mainCoroutineContext()", "kotlin.coroutines.CoroutineContext"),
45     )
46     fun mainDispatcher(): CoroutineDispatcher = Dispatchers.Main.immediate
47 
48     @Provides
49     @Singleton
50     @Main
51     fun mainCoroutineContext(): CoroutineContext {
52         return Dispatchers.Main.immediate
53     }
54 }
55