Biblib/app/src/main/java/com/pixelized/biblib/BibLibApplication.kt
Thomas Andres Gomez 6a0710572a Add room database.
2021-05-11 12:06:13 +02:00

45 lines
No EOL
1.8 KiB
Kotlin

package com.pixelized.biblib
import android.app.Application
import android.content.Context
import android.content.SharedPreferences
import androidx.room.Room
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.pixelized.biblib.database.BibLibDatabase
import com.pixelized.biblib.network.client.BibLibClient
import com.pixelized.biblib.network.client.IBibLibClient
import com.pixelized.biblib.repository.apiCache.APICacheRepository
import com.pixelized.biblib.repository.apiCache.IAPICacheRepository
import com.pixelized.biblib.repository.credential.CredentialRepository
import com.pixelized.biblib.repository.credential.ICredentialRepository
import com.pixelized.biblib.repository.googleSignIn.GoogleSingInRepository
import com.pixelized.biblib.repository.googleSignIn.IGoogleSingInRepository
import com.pixelized.biblib.utils.BitmapCache
import com.pixelized.biblib.utils.injection.Bob
class BibLibApplication : Application() {
override fun onCreate() {
super.onCreate()
// Android.
Bob[BibLibDatabase::class] =
Room.databaseBuilder(this, BibLibDatabase::class.java, BibLibDatabase.DATABASE_NAME)
.build()
Bob[SharedPreferences::class] = getSharedPreferences(SHARED_PREF, Context.MODE_PRIVATE)
// Web service.
Bob[Gson::class] = GsonBuilder().create()
Bob[IBibLibClient::class] = BibLibClient()
// Bitmap cache.
Bob[BitmapCache::class] = BitmapCache(this)
// Repositories.
Bob[IGoogleSingInRepository::class] = GoogleSingInRepository(this)
Bob[ICredentialRepository::class] = CredentialRepository()
Bob[IAPICacheRepository::class] = APICacheRepository()
}
companion object {
private const val SHARED_PREF = "BIB_LIB_SHARED_PREF"
}
}