1616
1717package com.google.firebase.sessions
1818
19+ import android.content.Context
1920import androidx.annotation.Keep
2021import com.google.android.datatransport.TransportFactory
2122import com.google.firebase.FirebaseApp
@@ -28,7 +29,6 @@ import com.google.firebase.components.Qualified.qualified
2829import com.google.firebase.components.Qualified.unqualified
2930import com.google.firebase.installations.FirebaseInstallationsApi
3031import com.google.firebase.platforminfo.LibraryVersionComponent
31- import com.google.firebase.sessions.settings.SessionsSettings
3232import kotlinx.coroutines.CoroutineDispatcher
3333
3434/* *
@@ -42,87 +42,41 @@ internal class FirebaseSessionsRegistrar : ComponentRegistrar {
4242 listOf (
4343 Component .builder(FirebaseSessions ::class .java)
4444 .name(LIBRARY_NAME )
45- .add(Dependency .required(firebaseApp))
46- .add(Dependency .required(sessionsSettings))
47- .add(Dependency .required(backgroundDispatcher))
48- .add(Dependency .required(sessionLifecycleServiceBinder))
49- .factory { container ->
50- FirebaseSessions (
51- container[firebaseApp],
52- container[sessionsSettings],
53- container[backgroundDispatcher],
54- container[sessionLifecycleServiceBinder],
55- )
56- }
45+ .add(Dependency .required(firebaseSessionsComponent))
46+ .factory { container -> container[firebaseSessionsComponent].firebaseSessions }
5747 .eagerInDefaultApp()
5848 .build(),
59- Component .builder(SessionGenerator ::class .java)
60- .name(" session-generator" )
61- .factory { SessionGenerator (timeProvider = WallClock ) }
62- .build(),
63- Component .builder(SessionFirelogPublisher ::class .java)
64- .name(" session-publisher" )
65- .add(Dependency .required(firebaseApp))
66- .add(Dependency .required(firebaseInstallationsApi))
67- .add(Dependency .required(sessionsSettings))
68- .add(Dependency .requiredProvider(transportFactory))
49+ Component .builder(FirebaseSessionsComponent ::class .java)
50+ .name(" fire-sessions-component" )
51+ .add(Dependency .required(appContext))
6952 .add(Dependency .required(backgroundDispatcher))
70- .factory { container ->
71- SessionFirelogPublisherImpl (
72- container[firebaseApp],
73- container[firebaseInstallationsApi],
74- container[sessionsSettings],
75- EventGDTLogger (container.getProvider(transportFactory)),
76- container[backgroundDispatcher],
77- )
78- }
79- .build(),
80- Component .builder(SessionsSettings ::class .java)
81- .name(" sessions-settings" )
82- .add(Dependency .required(firebaseApp))
8353 .add(Dependency .required(blockingDispatcher))
84- .add(Dependency .required(backgroundDispatcher))
85- .add(Dependency .required(firebaseInstallationsApi))
86- .factory { container ->
87- SessionsSettings (
88- container[firebaseApp],
89- container[blockingDispatcher],
90- container[backgroundDispatcher],
91- container[firebaseInstallationsApi],
92- )
93- }
94- .build(),
95- Component .builder(SessionDatastore ::class .java)
96- .name(" sessions-datastore" )
9754 .add(Dependency .required(firebaseApp))
98- .add(Dependency .required(backgroundDispatcher))
55+ .add(Dependency .required(firebaseInstallationsApi))
56+ .add(Dependency .requiredProvider(transportFactory))
9957 .factory { container ->
100- SessionDatastoreImpl (
101- container[firebaseApp].applicationContext,
102- container[backgroundDispatcher],
103- )
58+ DaggerFirebaseSessionsComponent .builder()
59+ .appContext(container[appContext])
60+ .backgroundDispatcher(container[backgroundDispatcher])
61+ .blockingDispatcher(container[blockingDispatcher])
62+ .firebaseApp(container[firebaseApp])
63+ .firebaseInstallationsApi(container[firebaseInstallationsApi])
64+ .transportFactoryProvider(container.getProvider(transportFactory))
65+ .build()
10466 }
10567 .build(),
106- Component .builder(SessionLifecycleServiceBinder ::class .java)
107- .name(" sessions-service-binder" )
108- .add(Dependency .required(firebaseApp))
109- .factory { container -> SessionLifecycleServiceBinderImpl (container[firebaseApp]) }
110- .build(),
11168 LibraryVersionComponent .create(LIBRARY_NAME , BuildConfig .VERSION_NAME ),
11269 )
11370
11471 private companion object {
115- private const val LIBRARY_NAME = " fire-sessions"
72+ const val LIBRARY_NAME = " fire-sessions"
11673
117- private val firebaseApp = unqualified(FirebaseApp ::class .java)
118- private val firebaseInstallationsApi = unqualified(FirebaseInstallationsApi ::class .java)
119- private val backgroundDispatcher =
120- qualified(Background ::class .java, CoroutineDispatcher ::class .java)
121- private val blockingDispatcher =
122- qualified(Blocking ::class .java, CoroutineDispatcher ::class .java)
123- private val transportFactory = unqualified(TransportFactory ::class .java)
124- private val sessionsSettings = unqualified(SessionsSettings ::class .java)
125- private val sessionLifecycleServiceBinder =
126- unqualified(SessionLifecycleServiceBinder ::class .java)
74+ val appContext = unqualified(Context ::class .java)
75+ val firebaseApp = unqualified(FirebaseApp ::class .java)
76+ val firebaseInstallationsApi = unqualified(FirebaseInstallationsApi ::class .java)
77+ val backgroundDispatcher = qualified(Background ::class .java, CoroutineDispatcher ::class .java)
78+ val blockingDispatcher = qualified(Blocking ::class .java, CoroutineDispatcher ::class .java)
79+ val transportFactory = unqualified(TransportFactory ::class .java)
80+ val firebaseSessionsComponent = unqualified(FirebaseSessionsComponent ::class .java)
12781 }
12882}
0 commit comments