generated from alura-cursos/readme-template
-
Notifications
You must be signed in to change notification settings - Fork 1
/
DatabaseModule.kt
43 lines (38 loc) · 1.18 KB
/
DatabaseModule.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package br.com.alura.anyflix.di.modules
import android.content.Context
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.sqlite.db.SupportSQLiteDatabase
import br.com.alura.anyflix.database.AnyflixDatabase
import br.com.alura.anyflix.database.dao.MovieDao
import br.com.alura.anyflix.model.toMovieEntity
import br.com.alura.anyflix.sampleData.sampleMovies
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.launch
import javax.inject.Singleton
@Module
@InstallIn(SingletonComponent::class)
object DatabaseModule {
@Singleton
@Provides
fun provideDatabase(
@ApplicationContext context: Context,
): AnyflixDatabase {
return Room.databaseBuilder(
context,
AnyflixDatabase::class.java,
"anyflix.db"
).fallbackToDestructiveMigration()
.build()
}
@Provides
fun provideMovieDao(db: AnyflixDatabase): MovieDao {
return db.movieDao()
}
}