diff --git a/app/build.gradle b/app/build.gradle index 4cb6534..3730085 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -50,7 +50,6 @@ android { } dependencies { - implementation project(':data') implementation project(':domain') implementation project(':usecase') diff --git a/data/src/main/java/com/lj/data/di/Singleton.kt b/data/src/main/java/com/lj/data/di/Singleton.kt index d8f5d73..ea71932 100644 --- a/data/src/main/java/com/lj/data/di/Singleton.kt +++ b/data/src/main/java/com/lj/data/di/Singleton.kt @@ -4,19 +4,25 @@ import com.lj.data.repository.MessageRepositoryImpl import com.lj.domain.repository.MessageRepository import dagger.Binds import dagger.Module +import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton /** * Module to inject/provide repositories. */ @InstallIn(SingletonComponent::class) @Module -abstract class Singleton { + +class Singleton { /** * Provide the implementation of [MessageRepository]. */ - @Binds - abstract fun provideMessageRepository(repository: MessageRepositoryImpl): MessageRepository + @Provides + @Singleton + fun provideMessageRepository(): MessageRepository{ + return MessageRepositoryImpl() + } } diff --git a/data/src/main/java/com/lj/data/repository/MessageRepositoryImpl.kt b/data/src/main/java/com/lj/data/repository/MessageRepositoryImpl.kt index 960a384..0515ad5 100644 --- a/data/src/main/java/com/lj/data/repository/MessageRepositoryImpl.kt +++ b/data/src/main/java/com/lj/data/repository/MessageRepositoryImpl.kt @@ -7,7 +7,7 @@ import javax.inject.Inject /** * [MessageRepository] implementation. */ -class MessageRepositoryImpl @Inject constructor() : MessageRepository { +internal class MessageRepositoryImpl : MessageRepository { /** * Get a message with a [prefix] and a [name]. diff --git a/usecase/build.gradle b/usecase/build.gradle index 7886805..7604852 100644 --- a/usecase/build.gradle +++ b/usecase/build.gradle @@ -34,6 +34,7 @@ android { dependencies { implementation project(':domain') + implementation project(':data') implementation "androidx.core:core-ktx:$core_ktx_version" diff --git a/usecase/src/main/java/com/lj/usecase/di/Singleton.kt b/usecase/src/main/java/com/lj/usecase/di/Singleton.kt index 9601bd2..a0c6b18 100644 --- a/usecase/src/main/java/com/lj/usecase/di/Singleton.kt +++ b/usecase/src/main/java/com/lj/usecase/di/Singleton.kt @@ -1,9 +1,11 @@ package com.lj.usecase.di +import com.lj.domain.repository.MessageRepository import com.lj.domain.usecase.HelloUseCase import com.lj.usecase.implementation.HelloUseCaseImpl import dagger.Binds import dagger.Module +import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent @@ -12,11 +14,13 @@ import dagger.hilt.components.SingletonComponent */ @InstallIn(SingletonComponent::class) @Module -abstract class Singleton { +class Singleton { /** * Provide an implementation for [HelloUseCase]. */ - @Binds - abstract fun provideHelloUseCase(useCase: HelloUseCaseImpl): HelloUseCase + @Provides + fun provideHelloUseCase( repository: MessageRepository): HelloUseCase { + return HelloUseCaseImpl(repository) + } } diff --git a/usecase/src/main/java/com/lj/usecase/implementation/HelloUseCaseImpl.kt b/usecase/src/main/java/com/lj/usecase/implementation/HelloUseCaseImpl.kt index 1b9b863..a611074 100644 --- a/usecase/src/main/java/com/lj/usecase/implementation/HelloUseCaseImpl.kt +++ b/usecase/src/main/java/com/lj/usecase/implementation/HelloUseCaseImpl.kt @@ -8,7 +8,9 @@ import javax.inject.Inject * [HelloUseCase] implementation: * Get a 'Hello message from a [String] using [MessageRepository]. */ -class HelloUseCaseImpl @Inject constructor(private val repository: MessageRepository) : HelloUseCase { - override fun invoke(input: String): String = - repository.getMessage("Hello", input).format() +internal class HelloUseCaseImpl (private val repository: MessageRepository) : HelloUseCase { + override fun invoke(input: String): String{ + return repository.getMessage("Hello", input).format() + } + }