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(compose.ui)
implementation(Dependencies.AndroidX.appCompat) implementation(Dependencies.AndroidX.appCompat)
implementation(Dependencies.AndroidX.browser) implementation(Dependencies.AndroidX.browser)
implementation(Dependencies.AndroidX.datastore)
implementation(Dependencies.AndroidX.Compose.activity) implementation(Dependencies.AndroidX.Compose.activity)
implementation(Dependencies.AndroidX.Compose.lifecycleViewModel) implementation(Dependencies.AndroidX.Compose.lifecycleViewModel)
implementation(Dependencies.AndroidX.Compose.navigation) 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"
}
}

View file

@ -34,6 +34,7 @@ object Dependencies {
const val appCompat = "androidx.appcompat:appcompat:1.3.0-beta01" const val appCompat = "androidx.appcompat:appcompat:1.3.0-beta01"
const val browser = "androidx.browser:browser:1.3.0" const val browser = "androidx.browser:browser:1.3.0"
const val coreLibraryDesugaring = "com.android.tools:desugar_jdk_libs:1.0.10" const val coreLibraryDesugaring = "com.android.tools:desugar_jdk_libs:1.0.10"
const val datastore = "androidx.datastore:datastore-preferences:1.0.0-alpha08"
object Compose { object Compose {