Skip to content

Instantly share code, notes, and snippets.

@Abhityagi16
Last active October 21, 2018 11:59
Show Gist options
  • Save Abhityagi16/d7c70d305d63c6278ec27e2714d28b44 to your computer and use it in GitHub Desktop.
Save Abhityagi16/d7c70d305d63c6278ec27e2714d28b44 to your computer and use it in GitHub Desktop.
package clean.architecture.example.utils
import android.arch.lifecycle.ViewModel
import android.arch.lifecycle.ViewModelProvider
import clean.architecture.example.postlist.PostListViewModel
class ViewModelFactory : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
if (modelClass == PostListViewModel::class.java) {
return PostListViewModel(
Injection.provideUseCaseHandler()
, Injection.provideGetPosts(), Injection.provideSavePost()) as T
}
throw IllegalArgumentException("unknown model class $modelClass")
}
companion object {
private var INSTANCE: ViewModelFactory? = null
fun getInstance(): ViewModelFactory {
if (INSTANCE == null) {
INSTANCE = ViewModelFactory()
}
return INSTANCE!!
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment