Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Module
- abstract class UsersModule {
- @Binds
- abstract fun bindUsersViewModel(viewModel: UsersViewModel): ViewModel
- }
- @Component(
- modules = [UsersModule::class, ViewModelModule::class],
- dependencies = [ProvidersFacade::class]
- )
- interface UsersComponent : ViewModelsProvider {
- fun inject(fragment: UsersFragment)
- companion object {
- fun create(providersFacade: ProvidersFacade): UsersComponent {
- return DaggerUsersComponent.builder()
- .providersFacade(providersFacade)
- .build()
- }
- }
- }
- // в core_api
- @Module
- abstract class ViewModelModule {
- @Binds
- abstract fun bindViewModelFactory(factory: ViewModelFactory): ViewModelProvider.Factory
- }
- // в core_api
- class ViewModelFactory @Inject constructor(
- private val vmProvider: Provider<ViewModel>
- ) : ViewModelProvider.Factory {
- @Suppress("UNCHECKED_CAST")
- override fun <T : ViewModel?> create(modelClass: Class<T>): T {
- return vmProvider.get() as T
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement