Android 刀柄特定特征依赖
我试图将它注入其他片段,但它不起作用。我的目标是制作特性方面的组件,以便只有这些与特定特性相关的片段才能获得依赖性。Android 刀柄特定特征依赖,android,dagger-2,dagger-hilt,Android,Dagger 2,Dagger Hilt,我试图将它注入其他片段,但它不起作用。我的目标是制作特性方面的组件,以便只有这些与特定特性相关的片段才能获得依赖性。 刀柄要求每个模块使用安装注释,如果我想将刀柄安装到我的自定义组件上,是否可能。您想使用[dagger-Hilt]或[dagger-2]?我想使用刀柄您想使用[dagger-Hilt]或[dagger-2]吗?我想使用刀柄 @Module(includes = [AuthModule.ViewModel::class, AuthModule.UseCase::class, Auth
刀柄要求每个模块使用安装注释,如果我想将刀柄安装到我的自定义组件上,是否可能。您想使用[dagger-Hilt]或[dagger-2]?我想使用刀柄您想使用[dagger-Hilt]或[dagger-2]吗?我想使用刀柄
@Module(includes = [AuthModule.ViewModel::class, AuthModule.UseCase::class, AuthModule.Api::class, AuthModule.Repository::class, AuthModule.Interactor::class])
@InstallIn(ActivityComponent::class)
class AuthModule {
@Module
@InstallIn(ActivityComponent::class)
class ViewModel() {
@Provides
fun providesRegisterViewModel(activity:FragmentActivity): RegisterViewModel {
val registerViewModel = ViewModelProvider(activity).get(RegisterViewModel::class.java)
return registerViewModel
}
}
@Module
@InstallIn(ActivityComponent::class)
class UseCase {
@Provides
fun providesRegisterationUseCase(registrationApi: RegistrationApi, userRepository: UserRepository): RegistrationUsecase {
val registrationUsecase = RegistrationUsecase(registrationApi, userRepository)
return registrationUsecase
}
}
@Module
@InstallIn(ActivityComponent::class)
class Api {
@Provides
fun provideRegistrationApi(retrofit: Retrofit): RegistrationApi {
val registrationService = retrofit.create(RegistrationService::class.java)
return RegistrationApi(registrationService)
}
}
@Module
@InstallIn(ActivityComponent::class)
class Repository {
@Provides
fun provideUserRepository(realm: Realm): UserRepository = UserRepository(realm)
}
@Module
@InstallIn(ActivityComponent::class)
class Interactor {
@Provides
fun provideSignInInteractor(registerViewModel: RegisterViewModel): SignInInteractor = SignInInteractor(registerViewModel)
}
}
@Component(modules = [AuthModule::class])
interface AuthComponent {
fun inject(signInFragment: SignInFragment)
@Component.Builder
interface Builder {
fun activity(@BindsInstance fragmentActivity: FragmentActivity): Builder
fun build(): AuthComponent
}
}
class SignInFragment : Fragment() {
@Inject lateinit var signInInteractor:SignInInteractor
private lateinit var fragmentSignInBinding: FragmentSignInBinding
override fun onCreate(savedInstanceState: Bundle?) {
DaggerAuthModuleComponent.builder()
.activity(requireActivity()).build().inject(this)
super.onCreate(savedInstanceState)
}