-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAnalyticsInitializer.kt
More file actions
32 lines (29 loc) · 1.33 KB
/
Copy pathAnalyticsInitializer.kt
File metadata and controls
32 lines (29 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.aquib.androidperflab.startup
import android.content.Context
import android.util.Log
import androidx.startup.Initializer
import com.aquib.androidperflab.AndroidPerfLabApplication
import com.aquib.androidperflab.sdk.FakeAnalyticsSdk
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
/**
* NOT registered in AndroidManifest.xml — triggered manually from Application.onCreate()
* via AppInitializer.initializeComponent() on Dispatchers.IO.
*
* create() returns immediately after launching the background coroutine; the ~180 ms
* SDK init never touches the main thread. CrashReportingInitializer is declared as a
* dependency so the exception handler is guaranteed to be registered before any SDK
* code runs (AppInitializer resolves the dependency graph automatically).
*/
class AnalyticsInitializer : Initializer<Unit> {
override fun create(context: Context) {
val app = context.applicationContext as AndroidPerfLabApplication
app.applicationScope.launch(Dispatchers.IO) {
FakeAnalyticsSdk.init(context.applicationContext)
Log.d("AppStartup", "Analytics ready")
}
Log.d("AppStartup", "AnalyticsInitializer.create() returned")
}
override fun dependencies(): List<Class<out Initializer<*>>> =
listOf(CrashReportingInitializer::class.java)
}