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" } }