Create a rudimentary DI container for Room

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-08-27 20:55:40 +05:30
parent 3d8935dc2b
commit 644a8a6110
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
3 changed files with 31 additions and 0 deletions

View file

@ -3,6 +3,7 @@
package="dev.msfjarvis.todo"> package="dev.msfjarvis.todo">
<application <application
android:name=".Application"
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"

View file

@ -0,0 +1,11 @@
package dev.msfjarvis.todo
import android.app.Application
import dev.msfjarvis.todo.di.Graph
class Application : Application() {
override fun onCreate() {
super.onCreate()
Graph.provide(this)
}
}

View file

@ -0,0 +1,19 @@
package dev.msfjarvis.todo.di
import android.content.Context
import androidx.room.Room
import dev.msfjarvis.todo.data.source.TodoDatabase
/**
* Rudimentary DI container to initialize singletons, will be switched to Hilt when architecture becomes
* a focus again.
*/
object Graph {
lateinit var database: TodoDatabase
fun provide(context: Context) {
database = Room.databaseBuilder(context, TodoDatabase::class.java, "data.db")
.fallbackToDestructiveMigration().build()
}
}