mirror of
https://github.com/PranshulGG/WeatherMaster.git
synced 2026-10-23 11:33:42 -05:00
split AppModule into DaoModule, ApiModule, SearchRepositoryModule, and WeatherRepositoryModule and add SMHI providers
This commit is contained in:
1 parent
27f12d4909
commit
8d5216e4bf
5 files changed
+187
-99
No files matched your search
@@ -44,64 +44,6 @@ object AppModule {
|
||||
): WeatherMasterDatabase =
|
||||
WeatherMasterDatabase.getInstance(context)
|
||||
|
||||
@Provides
|
||||
fun provideLocationDao(db: WeatherMasterDatabase) =
|
||||
db.locationsDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherDataDao(db: WeatherMasterDatabase) =
|
||||
db.weatherDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherUnitsDao(db: WeatherMasterDatabase) =
|
||||
db.weatherUnitsDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherBlocksDao(db: WeatherMasterDatabase) =
|
||||
db.weatherBlocksDao()
|
||||
|
||||
@Provides
|
||||
fun provideAirQualityDao(db: WeatherMasterDatabase) = db.airQualityDao()
|
||||
|
||||
@Provides
|
||||
fun provideNwsDao(db: WeatherMasterDatabase) = db.nwsDao()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoApi(): OpenMeteoApi = OpenMeteoApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoSearchApi(): OpenMeteoSearchApi = OpenMeteoSearchApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesSearchApi(): GeoNamesSearchApi = GeoNamesSearchApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesTimezoneApi(): GeoNamesTimezoneApi = GeoNamesTimezoneApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoAqiApi(): OpenMeteoAqiApi = OpenMeteoAqiApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNwsApi(): NwsApi = NwsApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetNorwayApi(): MetNorwayApi = MetNorwayApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoRepository(
|
||||
dao: LocationsDao,
|
||||
api: OpenMeteoApi,
|
||||
weatherDao: WeatherDao
|
||||
): OpenMeteoRepository = OpenMeteoRepository(dao, weatherDao, api)
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@@ -124,47 +66,6 @@ object AppModule {
|
||||
): WeatherBlocksRepository =
|
||||
WeatherBlocksRepository(weatherBlocksDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoSearchRepository(
|
||||
api: OpenMeteoSearchApi
|
||||
): OpenMeteoSearchRepository = OpenMeteoSearchRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesSearchRepository(
|
||||
api: GeoNamesSearchApi
|
||||
): GeoNamesSearchRepository = GeoNamesSearchRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesTimezoneRepository(api: GeoNamesTimezoneApi): GeoNamesTimezoneRepository =
|
||||
GeoNamesTimezoneRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoAqiRepository(
|
||||
api: OpenMeteoAqiApi,
|
||||
dao: AirQualityDao
|
||||
): OpenMeteoAqiRepository =
|
||||
OpenMeteoAqiRepository(api, dao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNwsRepository(
|
||||
api: NwsApi,
|
||||
dao: LocationsDao,
|
||||
weatherDao: WeatherDao,
|
||||
nwsDao: NwsDao
|
||||
): NwsRepository = NwsRepository(dao, weatherDao, nwsDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetNorwayRepository(
|
||||
dao: LocationsDao,
|
||||
api: MetNorwayApi,
|
||||
weatherDao: WeatherDao
|
||||
): MetNorwayRepository = MetNorwayRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.db
|
||||
|
||||
import com.pranshulgg.weather_master_app.data.local.WeatherMasterDatabase
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object DaoModule {
|
||||
@Provides
|
||||
fun provideLocationDao(db: WeatherMasterDatabase) =
|
||||
db.locationsDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherDataDao(db: WeatherMasterDatabase) =
|
||||
db.weatherDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherUnitsDao(db: WeatherMasterDatabase) =
|
||||
db.weatherUnitsDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherBlocksDao(db: WeatherMasterDatabase) =
|
||||
db.weatherBlocksDao()
|
||||
|
||||
@Provides
|
||||
fun provideAirQualityDao(db: WeatherMasterDatabase) = db.airQualityDao()
|
||||
|
||||
@Provides
|
||||
fun provideNwsDao(db: WeatherMasterDatabase) = db.nwsDao()
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.network
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.airquality.openmeteo.OpenMeteoAqiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.timezone.GeoNamesTimezoneApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.openmeteo.OpenMeteoSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metnorway.MetNorwayApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.nws.NwsApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.OpenMeteoApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.smhi.SmhiApi
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object ApiModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoApi(): OpenMeteoApi = OpenMeteoApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoSearchApi(): OpenMeteoSearchApi = OpenMeteoSearchApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesSearchApi(): GeoNamesSearchApi = GeoNamesSearchApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesTimezoneApi(): GeoNamesTimezoneApi = GeoNamesTimezoneApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoAqiApi(): OpenMeteoAqiApi = OpenMeteoAqiApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNwsApi(): NwsApi = NwsApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetNorwayApi(): MetNorwayApi = MetNorwayApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideSmhiApi(): SmhiApi = SmhiApi.create()
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.search
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesSearchRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesTimezoneRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.timezone.GeoNamesTimezoneApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.openmeteo.OpenMeteoSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.openmeteo.OpenMeteoSearchRepository
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object SearchRepositoryModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoSearchRepository(
|
||||
api: OpenMeteoSearchApi
|
||||
): OpenMeteoSearchRepository = OpenMeteoSearchRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesSearchRepository(
|
||||
api: GeoNamesSearchApi
|
||||
): GeoNamesSearchRepository = GeoNamesSearchRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesTimezoneRepository(api: GeoNamesTimezoneApi): GeoNamesTimezoneRepository =
|
||||
GeoNamesTimezoneRepository(api)
|
||||
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.weather
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.airquality.openmeteo.OpenMeteoAqiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.airquality.openmeteo.OpenMeteoAqiRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metnorway.MetNorwayApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metnorway.MetNorwayRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.nws.NwsApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.nws.NwsRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.OpenMeteoApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.OpenMeteoRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.smhi.SmhiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.smhi.SmhiRepository
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.airquality.AirQualityDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.location.LocationsDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.nws.NwsDao
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object WeatherRepositoryModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoRepository(
|
||||
dao: LocationsDao,
|
||||
api: OpenMeteoApi,
|
||||
weatherDao: WeatherDao
|
||||
): OpenMeteoRepository = OpenMeteoRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoAqiRepository(
|
||||
api: OpenMeteoAqiApi,
|
||||
dao: AirQualityDao
|
||||
): OpenMeteoAqiRepository =
|
||||
OpenMeteoAqiRepository(api, dao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNwsRepository(
|
||||
api: NwsApi,
|
||||
dao: LocationsDao,
|
||||
weatherDao: WeatherDao,
|
||||
nwsDao: NwsDao
|
||||
): NwsRepository = NwsRepository(dao, weatherDao, nwsDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetNorwayRepository(
|
||||
dao: LocationsDao,
|
||||
api: MetNorwayApi,
|
||||
weatherDao: WeatherDao
|
||||
): MetNorwayRepository = MetNorwayRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideSmhiRepository(
|
||||
dao: LocationsDao,
|
||||
api: SmhiApi,
|
||||
weatherDao: WeatherDao
|
||||
): SmhiRepository = SmhiRepository(dao, weatherDao, api)
|
||||
}
|
||||
Reference in new issue
Block a user