Skip to content

Commit f5051cd

Browse files
add HomeComponent.kt and HomeModule.kt for home module
1 parent 3bb1a39 commit f5051cd

2 files changed

Lines changed: 56 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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+
}

0 commit comments

Comments
 (0)