WooDroid/app/src/main/java/me/gilo/wc/di/ViewModelModule.kt
2019-05-31 16:31:56 +03:00

62 lines
1.6 KiB
Kotlin

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
}