mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 21:27:01 +05:30
Add DataStore dependency and set up injection
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
b37707d933
commit
9e3f718ab9
3 changed files with 38 additions and 0 deletions
|
@ -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)
|
||||||
|
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
|
@ -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 {
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue