diff --git a/app/src/main/java/com/example/androidmoudledecouplerdemo/component/ApplicationComponent.kt b/app/src/main/java/com/example/androidmoudledecouplerdemo/component/ApplicationComponent.kt index 833f93e..2a14f89 100644 --- a/app/src/main/java/com/example/androidmoudledecouplerdemo/component/ApplicationComponent.kt +++ b/app/src/main/java/com/example/androidmoudledecouplerdemo/component/ApplicationComponent.kt @@ -3,13 +3,14 @@ package com.example.androidmoudledecouplerdemo.component import com.example.modulea.component.ModuleAComponent import com.example.moduleb.ModuleB import com.example.androidmoudledecouplerdemo.MainActivity +import com.example.basemodule.ActivityScope import dagger.Component +@ActivityScope @Component(modules = [ModuleB::class]) interface ApplicationComponent{ fun inject(mainActivity: MainActivity) fun moduleAComponent(): ModuleAComponent.Factory - } \ No newline at end of file diff --git a/baseModule/build.gradle.kts b/baseModule/build.gradle.kts index 5aaa65c..9a10b97 100644 --- a/baseModule/build.gradle.kts +++ b/baseModule/build.gradle.kts @@ -1,7 +1,7 @@ plugins { alias(libs.plugins.androidLibrary) alias(libs.plugins.jetbrainsKotlinAndroid) - + id("kotlin-kapt") } android { @@ -41,4 +41,6 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) + implementation(libs.dagger) + kapt(libs.dagger.compiler) } \ No newline at end of file diff --git a/baseModule/src/main/java/com/example/basemodule/ActivityScope.kt b/baseModule/src/main/java/com/example/basemodule/ActivityScope.kt new file mode 100644 index 0000000..3736a25 --- /dev/null +++ b/baseModule/src/main/java/com/example/basemodule/ActivityScope.kt @@ -0,0 +1,7 @@ +package com.example.basemodule + +import javax.inject.Scope + +@Scope +@Retention(AnnotationRetention.RUNTIME) +annotation class ActivityScope diff --git a/moduleB/src/main/java/com/example/moduleb/ModuleB.kt b/moduleB/src/main/java/com/example/moduleb/ModuleB.kt index e97c277..40e3aa7 100644 --- a/moduleB/src/main/java/com/example/moduleb/ModuleB.kt +++ b/moduleB/src/main/java/com/example/moduleb/ModuleB.kt @@ -1,15 +1,15 @@ package com.example.moduleb +import com.example.basemodule.ActivityScope import com.example.basemodule.InterfaceB -import dagger.Component import dagger.Module import dagger.Provides -import javax.inject.Singleton @Module class ModuleB { + @ActivityScope @Provides fun getInterfaceB(): InterfaceB{ return ClassB()