42 lines
No EOL
1.1 KiB
Kotlin
42 lines
No EOL
1.1 KiB
Kotlin
package com.pixelized.biblib.module
|
|
|
|
import android.content.Context
|
|
import android.content.SharedPreferences
|
|
import androidx.room.Room
|
|
import com.pixelized.biblib.database.BibLibDatabase
|
|
import dagger.Module
|
|
import dagger.Provides
|
|
import dagger.hilt.InstallIn
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
import dagger.hilt.components.SingletonComponent
|
|
import javax.inject.Singleton
|
|
|
|
@Module
|
|
@InstallIn(SingletonComponent::class)
|
|
class PersistenceModule {
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun provideDatabase(
|
|
@ApplicationContext context: Context,
|
|
): BibLibDatabase {
|
|
val builder = Room.databaseBuilder(
|
|
context,
|
|
BibLibDatabase::class.java,
|
|
BibLibDatabase.DATABASE_NAME
|
|
)
|
|
return builder.fallbackToDestructiveMigration().build()
|
|
}
|
|
|
|
@Provides
|
|
@Singleton
|
|
fun providePreferences(
|
|
@ApplicationContext context: Context,
|
|
): SharedPreferences {
|
|
return context.getSharedPreferences(SHARED_PREF, Context.MODE_PRIVATE)
|
|
}
|
|
|
|
companion object {
|
|
private const val SHARED_PREF = "BIB_LIB_SHARED_PREF"
|
|
}
|
|
} |