Added default ViewModelFactory for DI
This commit is contained in:
parent
11d2b2de43
commit
87fd17084e
|
|
@ -16,6 +16,7 @@ android {
|
|||
|
||||
dependencies {
|
||||
api project(path: ':libraries:components')
|
||||
api 'javax.inject:javax.inject:1'
|
||||
|
||||
api 'net.danlew:android.joda:2.9.9'
|
||||
api 'com.android.support:multidex:1.0.3'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
package ru.touchin.templates.viewmodel
|
||||
|
||||
import android.arch.lifecycle.ViewModel
|
||||
import android.arch.lifecycle.ViewModelProvider
|
||||
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Provider
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
class ViewModelFactory @Inject constructor(
|
||||
private val creators: Map<Class<out ViewModel>, @JvmSuppressWildcards Provider<ViewModel>>
|
||||
) : ViewModelProvider.Factory {
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T
|
||||
= (creators[modelClass]?.get() as? T) ?: throw IllegalArgumentException("Unknown model class $modelClass")
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue