File tree Expand file tree Collapse file tree
features/home/src/main/java/com/smarttoolfactory/home/di Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com.smarttoolfactory.home.di
2+
3+ import androidx.fragment.app.Fragment
4+ import com.smarttoolfactory.core.di.CoreModuleDependencies
5+
6+ import dagger.BindsInstance
7+ import dagger.Component
8+
9+ @Component(
10+ dependencies = [CoreModuleDependencies ::class ],
11+ modules = [HomeModule ::class ]
12+ )
13+ interface HomeComponent {
14+
15+ @Component.Factory
16+ interface Factory {
17+ fun create (
18+ dependentModule : CoreModuleDependencies ,
19+ @BindsInstance fragment : Fragment
20+ ): HomeComponent
21+ }
22+ }
Original file line number Diff line number Diff line change 1+ package com.smarttoolfactory.home.di
2+
3+ import androidx.fragment.app.Fragment
4+ import androidx.lifecycle.ViewModelProvider
5+ import com.smarttoolfactory.home.viewmodel.PropertyListFlowViewModelFactory
6+ import com.smarttoolfactory.home.viewmodel.PropertyListRxJava3ViewModelFactory
7+ import com.smarttoolfactory.home.viewmodel.PropertyListViewModelFlow
8+ import com.smarttoolfactory.home.viewmodel.PropertyListViewModelRxJava3
9+ import dagger.Module
10+ import dagger.Provides
11+ import dagger.hilt.InstallIn
12+ import dagger.hilt.android.components.FragmentComponent
13+ import kotlinx.coroutines.CoroutineScope
14+ import kotlinx.coroutines.Dispatchers
15+ import kotlinx.coroutines.SupervisorJob
16+
17+ @InstallIn(FragmentComponent ::class )
18+ @Module
19+ class HomeModule {
20+
21+ @Provides
22+ fun providePropertyListViewModelFlow (fragment : Fragment , factory : PropertyListFlowViewModelFactory ) =
23+ ViewModelProvider (fragment, factory).get(PropertyListViewModelFlow ::class .java)
24+
25+ @Provides
26+ fun providePropertyListViewModelRxJava3 (
27+ fragment : Fragment ,
28+ factory : PropertyListRxJava3ViewModelFactory
29+ ) =
30+ ViewModelProvider (fragment, factory).get(PropertyListViewModelRxJava3 ::class .java)
31+
32+ @Provides
33+ fun provideCoroutineScope () = CoroutineScope (Dispatchers .Main .immediate + SupervisorJob ())
34+ }
You can’t perform that action at this time.
0 commit comments