Newer
Older
ToDoApp / app / src / main / java / keijumt / todoapp / di / DatabaseModule.kt
package keijumt.todoapp.di

import android.app.Application
import android.arch.persistence.room.Room
import dagger.Module
import dagger.Provides
import keijumt.todoapp.data.db.AppDatabase
import keijumt.todoapp.data.db.TaskDatabase
import keijumt.todoapp.data.db.TaskRoomDatabase
import keijumt.todoapp.data.db.dao.TaskDao
import javax.inject.Singleton

/**
 *
 * Created by matsumoto_k on 2018/03/09.
 */
@Module
class DatabaseModule {

    @Singleton
    @Provides
    fun provideTaskDatabase(db: AppDatabase, dao: TaskDao): TaskDatabase = TaskRoomDatabase(db, dao)

    @Singleton
    @Provides
    fun provideDb(app: Application): AppDatabase = Room.databaseBuilder(app, AppDatabase::class.java, "toDoApp.db")
            .fallbackToDestructiveMigration()
            .build()

    @Singleton
    @Provides
    fun provideTaskDao(db: AppDatabase): TaskDao = db.taskDao()
}