package me.gilo.wc.di import android.arch.lifecycle.ViewModel import android.arch.lifecycle.ViewModelProvider import com.google.firebase.firestore.CollectionReference import dagger.Binds import dagger.Module import dagger.Provides import dagger.multibindings.IntoMap import me.gilo.wc.ui.order.MyOrdersActivity import me.gilo.wc.utils.ViewModelFactory import me.gilo.wc.viewmodels.* import javax.inject.Named import javax.inject.Singleton @Module abstract class ViewModelModule { @Binds @IntoMap @ViewModelKey(UserViewModel::class) internal abstract fun bindUserViewModel(viewModel: UserViewModel): ViewModel @Binds @IntoMap @ViewModelKey(ProductViewModel::class) internal abstract fun bindProductViewModel(viewModel: ProductViewModel): ViewModel @Binds @IntoMap @ViewModelKey(CategoryViewModel::class) internal abstract fun bindCategoryViewModel(viewModel: CategoryViewModel): ViewModel @Binds @IntoMap @ViewModelKey(CustomerViewModel::class) internal abstract fun bindCustomerViewModel(viewModel: CustomerViewModel): ViewModel @Binds @IntoMap @ViewModelKey(CartViewModel::class) internal abstract fun bindCartViewModel(viewModel: CartViewModel): ViewModel @Binds @IntoMap @ViewModelKey(OrderViewModel::class) internal abstract fun bindOrderViewModel(viewModel: OrderViewModel): ViewModel @Binds @IntoMap @ViewModelKey(ReviewViewModel::class) internal abstract fun bindReviewViewModel(viewModel: ReviewViewModel): ViewModel @Binds internal abstract fun bindViewModelFactory(factory: ViewModelFactory): ViewModelProvider.Factory }