From a15e789e70e81b11a4d0252c80a506f6be2f4dc6 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Tue, 2 Mar 2021 07:54:06 +0000 Subject: [PATCH] Added app-wide supervisor scope to CoroutinesModule.kt --- .../com/rtbishop/look4sat/di/ApplicationModule.kt | 11 +++++++++-- .../{DispatchersModule.kt => CoroutinesModule.kt} | 15 +++++++++++---- .../com/rtbishop/look4sat/di/NetworkModule.kt | 6 +++--- .../com/rtbishop/look4sat/di/RepositoryModule.kt | 15 ++++----------- 4 files changed, 27 insertions(+), 20 deletions(-) rename app/src/main/java/com/rtbishop/look4sat/di/{DispatchersModule.kt => CoroutinesModule.kt} (76%) diff --git a/app/src/main/java/com/rtbishop/look4sat/di/ApplicationModule.kt b/app/src/main/java/com/rtbishop/look4sat/di/ApplicationModule.kt index 13558e76..b7c78fca 100644 --- a/app/src/main/java/com/rtbishop/look4sat/di/ApplicationModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/di/ApplicationModule.kt @@ -19,6 +19,7 @@ package com.rtbishop.look4sat.di +import android.content.ContentResolver import android.content.Context import android.content.SharedPreferences import android.location.LocationManager @@ -36,13 +37,19 @@ object ApplicationModule { @Provides @Singleton - fun getLocationManager(@ApplicationContext context: Context): LocationManager { + fun provideContentResolver(@ApplicationContext context: Context): ContentResolver { + return context.contentResolver + } + + @Provides + @Singleton + fun provideLocationManager(@ApplicationContext context: Context): LocationManager { return context.getSystemService(Context.LOCATION_SERVICE) as LocationManager } @Provides @Singleton - fun getSharedPreferences(@ApplicationContext context: Context): SharedPreferences { + fun provideSharedPreferences(@ApplicationContext context: Context): SharedPreferences { return PreferenceManager.getDefaultSharedPreferences(context) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/di/DispatchersModule.kt b/app/src/main/java/com/rtbishop/look4sat/di/CoroutinesModule.kt similarity index 76% rename from app/src/main/java/com/rtbishop/look4sat/di/DispatchersModule.kt rename to app/src/main/java/com/rtbishop/look4sat/di/CoroutinesModule.kt index d3ee5aa0..e6b39604 100644 --- a/app/src/main/java/com/rtbishop/look4sat/di/DispatchersModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/di/CoroutinesModule.kt @@ -24,24 +24,31 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob import javax.inject.Qualifier +import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) -object DispatchersModule { +object CoroutinesModule { + + @Provides + @Singleton + fun provideApplicationScope(): CoroutineScope = CoroutineScope(SupervisorJob()) @Provides @DefaultDispatcher - fun getDefaultDispatcher(): CoroutineDispatcher = Dispatchers.Default + fun provideDefaultDispatcher(): CoroutineDispatcher = Dispatchers.Default @Provides @IoDispatcher - fun getIoDispatcher(): CoroutineDispatcher = Dispatchers.IO + fun provideIoDispatcher(): CoroutineDispatcher = Dispatchers.IO @Provides @MainDispatcher - fun getMainDispatcher(): CoroutineDispatcher = Dispatchers.Main + fun provideMainDispatcher(): CoroutineDispatcher = Dispatchers.Main } @Qualifier diff --git a/app/src/main/java/com/rtbishop/look4sat/di/NetworkModule.kt b/app/src/main/java/com/rtbishop/look4sat/di/NetworkModule.kt index b506e6ef..061722c6 100644 --- a/app/src/main/java/com/rtbishop/look4sat/di/NetworkModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/di/NetworkModule.kt @@ -36,19 +36,19 @@ object NetworkModule { @Provides @Singleton - fun getOkHttpClient(): OkHttpClient { + fun provideOkHttpClient(): OkHttpClient { return OkHttpClient() } @Provides @Singleton - fun getMoshi(): Moshi { + fun provideMoshi(): Moshi { return Moshi.Builder().build() } @Provides @Singleton - fun getTransmittersApi(): TransmittersApi { + fun provideTransmittersApi(): TransmittersApi { return Retrofit.Builder() .baseUrl("https://db.satnogs.org/api/") .addConverterFactory(MoshiConverterFactory.create()) diff --git a/app/src/main/java/com/rtbishop/look4sat/di/RepositoryModule.kt b/app/src/main/java/com/rtbishop/look4sat/di/RepositoryModule.kt index beee5edf..092eb73b 100644 --- a/app/src/main/java/com/rtbishop/look4sat/di/RepositoryModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/di/RepositoryModule.kt @@ -19,7 +19,6 @@ package com.rtbishop.look4sat.di -import android.content.ContentResolver import android.content.Context import androidx.room.Room import com.rtbishop.look4sat.repository.localData.EntriesDao @@ -41,31 +40,25 @@ object RepositoryModule { @Provides @Singleton - fun getContentResolver(@ApplicationContext context: Context): ContentResolver { - return context.contentResolver - } - - @Provides - @Singleton - fun getEntriesDao(db: SatelliteDb): EntriesDao { + fun provideEntriesDao(db: SatelliteDb): EntriesDao { return db.entriesDao() } @Provides @Singleton - fun getSourcesDao(db: SatelliteDb): SourcesDao { + fun provideSourcesDao(db: SatelliteDb): SourcesDao { return db.sourcesDao() } @Provides @Singleton - fun getTransmittersDao(db: SatelliteDb): TransmittersDao { + fun provideTransmittersDao(db: SatelliteDb): TransmittersDao { return db.transmittersDao() } @Provides @Singleton - fun getSatelliteDb(@ApplicationContext context: Context, moshi: Moshi): SatelliteDb { + fun provideSatelliteDb(@ApplicationContext context: Context, moshi: Moshi): SatelliteDb { RoomConverters.initialize(moshi) return Room.databaseBuilder(context, SatelliteDb::class.java, "satDb").build() }