Skip to content

Commit 278c3ea

Browse files
committed
Feat: datastore DI 모듈 추가
1 parent 0d7bac0 commit 278c3ea

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.threegap.bitnagil.datastore.di
2+
3+
import android.content.Context
4+
import androidx.datastore.core.DataStore
5+
import androidx.datastore.core.DataStoreFactory
6+
import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler
7+
import androidx.datastore.dataStoreFile
8+
import com.threegap.bitnagil.datastore.model.AuthToken
9+
import com.threegap.bitnagil.datastore.serializer.TokenSerializer
10+
import com.threegap.bitnagil.datastore.serializer.AuthTokenSerializer
11+
import com.threegap.bitnagil.security.crypto.Crypto
12+
import dagger.Module
13+
import dagger.Provides
14+
import dagger.hilt.InstallIn
15+
import dagger.hilt.android.qualifiers.ApplicationContext
16+
import dagger.hilt.components.SingletonComponent
17+
import javax.inject.Singleton
18+
19+
@Module
20+
@InstallIn(SingletonComponent::class)
21+
object DataStoreModule {
22+
@Provides
23+
@Singleton
24+
fun provideTokenSerializer(crypto: Crypto): TokenSerializer = AuthTokenSerializer(crypto)
25+
26+
@Provides
27+
@Singleton
28+
fun provideAuthTokenDataStore(
29+
@ApplicationContext context: Context,
30+
tokenSerializer: TokenSerializer,
31+
): DataStore<AuthToken> =
32+
DataStoreFactory.create(
33+
serializer = tokenSerializer,
34+
produceFile = { context.dataStoreFile("auth-token.enc") },
35+
corruptionHandler = ReplaceFileCorruptionHandler { AuthToken() },
36+
)
37+
}

0 commit comments

Comments
 (0)