diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 99a3dc2e..30178f9c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/injection/DataStoreModule.kt b/app/src/main/java/dev/msfjarvis/lobsters/injection/DataStoreModule.kt new file mode 100644 index 00000000..ee661602 --- /dev/null +++ b/app/src/main/java/dev/msfjarvis/lobsters/injection/DataStoreModule.kt @@ -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 { + return PreferenceDataStoreFactory.create { context.preferencesDataStoreFile(fileName) } + } + + @Provides + @PreferenceStoreFileNameQualifier + fun provideDataStoreFilename(): String { + return "Claw_preferences" + } +} diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 049f6a19..63dbf46b 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -34,6 +34,7 @@ object Dependencies { const val appCompat = "androidx.appcompat:appcompat:1.3.0-beta01" const val browser = "androidx.browser:browser:1.3.0" 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 {