Skip to content

Commit

Permalink
#3 divide di into 2 modules
Browse files Browse the repository at this point in the history
  • Loading branch information
nastix123 committed Jul 16, 2024
1 parent 369db8c commit 36b370c
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 30 deletions.
34 changes: 4 additions & 30 deletions android/app/src/main/java/by/eapp/musicroom/di/AppModule.kt
Original file line number Diff line number Diff line change
@@ -1,21 +1,11 @@
package by.eapp.musicroom.di

import android.content.Context
import androidx.datastore.core.DataStore
import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.emptyPreferences
import androidx.datastore.preferences.preferencesDataStoreFile
import by.eapp.musicroom.data.DispatcherProviderImpl
import by.eapp.musicroom.data.login.JwtTokenStorage
import by.eapp.musicroom.domain.repo.DispatcherProvider
import by.eapp.musicroom.domain.repo.login.JwtTokenManager
import by.eapp.musicroom.network.ApiService
import by.eapp.musicroom.network.AuthorizationApiService
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
Expand Down Expand Up @@ -56,31 +46,15 @@ object AppModule {

@Singleton
@Provides
fun provideApiService(retrofit: Retrofit): ApiService = retrofit.create(ApiService::class.java)
fun provideApiService(retrofit: Retrofit): AuthorizationApiService =
retrofit.create(AuthorizationApiService::class.java)


@Provides
@Singleton
fun provideDispatcherProvider(): DispatcherProvider = DispatcherProviderImpl()

@Provides
@Singleton
fun provideDataStore(
@ApplicationContext appContext: Context,
): DataStore<Preferences> {
return PreferenceDataStoreFactory.create(
corruptionHandler = ReplaceFileCorruptionHandler(
produceNewData = { emptyPreferences() }
),
produceFile = { appContext.preferencesDataStoreFile("auth_datastore") }
)
}


@Provides
@Singleton
fun provideJwtTokenManager(dataStore: DataStore<Preferences>):
JwtTokenManager = JwtTokenStorage(dataStore)

}


42 changes: 42 additions & 0 deletions android/app/src/main/java/by/eapp/musicroom/di/AuthModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package by.eapp.musicroom.di

import android.content.Context
import androidx.datastore.core.DataStore
import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.emptyPreferences
import androidx.datastore.preferences.preferencesDataStoreFile
import by.eapp.musicroom.data.login.storage.JwtTokenStorage
import by.eapp.musicroom.domain.repo.login.JwtTokenManager
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton


@Module
@InstallIn(SingletonComponent::class)
object AuthModule {
@Provides
@Singleton
fun provideDataStore(
@ApplicationContext appContext: Context,
): DataStore<Preferences> {
return PreferenceDataStoreFactory.create(
corruptionHandler = ReplaceFileCorruptionHandler(
produceNewData = { emptyPreferences() }
),
produceFile = { appContext.preferencesDataStoreFile("auth_datastore") }
)
}


@Provides
@Singleton
fun provideJwtTokenManager(dataStore: DataStore<Preferences>):
JwtTokenManager = JwtTokenStorage(dataStore)

}

0 comments on commit 36b370c

Please sign in to comment.