class BlueDataApp : Application() {
val viewModelFactory: ViewModelFactory
get() = provideViewModelFactory(applicationContext)
companion object {
private var mViewModelFactory: ViewModelFactory? = null
private fun provideViewModelFactory(context: Context): ViewModelFactory {
return mViewModelFactory ?: ViewModelFactory(
context,
getNetworkDataSource(context)
).apply { mViewModelFactory = this }
}
private fun getNetworkDataSource(context: Context): BlueDataSource {
return Retrofit.Builder()
.baseUrl(context.getString(R.string.bd_url))
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(BlueDataSource::
class.java)
}
}
}