45 lines
No EOL
1.8 KiB
Kotlin
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"
|
|
}
|
|
} |