1616 * along with SensorSpot. If not, see <https://www.gnu.org/licenses/>.
1717 *
1818 */
19- package com.github.umercodez.sensorspot.data.injection
20-
21- import android.content.Context
22- import com.github.umercodez.sensorspot.data.repositories.settings.SettingsRepository
23- import com.github.umercodez.sensorspot.data.repositories.settings.SettingsRepositoryImp
24- import com.github.umercodez.sensorspot.data.repositories.settings.sensor.SensorsRepository
25- import com.github.umercodez.sensorspot.data.repositories.settings.sensor.SensorsRepositoryImp
26- import dagger.Module
27- import dagger.Provides
28- import dagger.hilt.InstallIn
29- import dagger.hilt.android.components.ServiceComponent
30- import dagger.hilt.android.components.ViewModelComponent
31- import dagger.hilt.android.qualifiers.ApplicationContext
32- import dagger.hilt.android.scopes.ServiceScoped
33- import dagger.hilt.android.scopes.ViewModelScoped
34-
35- @Module
36- @InstallIn(ViewModelComponent ::class )
37- object ProvideRepoForViewModels {
38-
39- @Provides
40- @ViewModelScoped
41- fun provideSettingsRepository (@ApplicationContext context : Context ): SettingsRepository {
42- return SettingsRepositoryImp (context)
43- }
44-
45- @Provides
46- @ViewModelScoped
47- fun provideSensorsRepository (@ApplicationContext context : Context ): SensorsRepository {
48- return SensorsRepositoryImp (context)
49- }
50- }
51-
52- @Module
53- @InstallIn(ServiceComponent ::class )
54- object ProvideRepoForService {
55- @Provides
56- @ServiceScoped
57- fun provideSettingsRepository (@ApplicationContext context : Context ): SettingsRepository {
58- return SettingsRepositoryImp (context)
59- }
60-
61- @Provides
62- @ServiceScoped
63- fun provideSensorsRepository (@ApplicationContext context : Context ): SensorsRepository {
64- return SensorsRepositoryImp (context)
65- }
66- }
19+ package com.github.umercodez.sensorspot.data.injection
20+
21+ import android.content.Context
22+ import com.github.umercodez.sensorspot.data.repositories.settings.SettingsRepository
23+ import com.github.umercodez.sensorspot.data.repositories.settings.SettingsRepositoryImp
24+ import com.github.umercodez.sensorspot.data.repositories.settings.sensor.SensorsRepository
25+ import com.github.umercodez.sensorspot.data.repositories.settings.sensor.SensorsRepositoryImp
26+ import dagger.Module
27+ import dagger.Provides
28+ import dagger.hilt.InstallIn
29+ import dagger.hilt.android.qualifiers.ApplicationContext
30+ import dagger.hilt.components.SingletonComponent
31+ import javax.inject.Singleton
32+
33+ @Module
34+ @InstallIn(SingletonComponent ::class ) // ViewModelComponent and ServiceComponent can both access bindings from SingletonComponent.
35+ object RepositoryModule {
36+
37+ @Provides
38+ @Singleton
39+ fun provideSettingsRepository (@ApplicationContext context : Context ): SettingsRepository {
40+ return SettingsRepositoryImp (context)
41+ }
42+
43+ @Provides
44+ @Singleton
45+ fun provideSensorsRepository (@ApplicationContext context : Context ): SensorsRepository {
46+ return SensorsRepositoryImp (context)
47+ }
48+ }
0 commit comments