Add DataStore dependency and set up injection

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-03-22 22:31:35 +05:30
parent b37707d933
commit 9e3f718ab9
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
3 changed files with 38 additions and 0 deletions

View file

@ -33,6 +33,7 @@ dependencies {
implementation(compose.ui)
implementation(Dependencies.AndroidX.appCompat)
implementation(Dependencies.AndroidX.browser)
implementation(Dependencies.AndroidX.datastore)
implementation(Dependencies.AndroidX.Compose.activity)
implementation(Dependencies.AndroidX.Compose.lifecycleViewModel)
implementation(Dependencies.AndroidX.Compose.navigation)

View file

@ -0,0 +1,36 @@
package dev.msfjarvis.lobsters.injection
import android.content.Context
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.preferencesDataStoreFile
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Qualifier
@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class PreferenceStoreFileNameQualifier
@Module
@InstallIn(SingletonComponent::class)
object DataStoreModule {
@Provides
fun provideDataStore(
@ApplicationContext context: Context,
@PreferenceStoreFileNameQualifier fileName: String,
): DataStore<Preferences> {
return PreferenceDataStoreFactory.create { context.preferencesDataStoreFile(fileName) }
}
@Provides
@PreferenceStoreFileNameQualifier
fun provideDataStoreFilename(): String {
return "Claw_preferences"
}
}