Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ android {
}

dependencies {
implementation project(':data')
implementation project(':domain')
implementation project(':usecase')

Expand Down
12 changes: 9 additions & 3 deletions data/src/main/java/com/lj/data/di/Singleton.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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].
Expand Down
1 change: 1 addition & 0 deletions usecase/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ android {

dependencies {
implementation project(':domain')
implementation project(':data')

implementation "androidx.core:core-ktx:$core_ktx_version"

Expand Down
10 changes: 7 additions & 3 deletions usecase/src/main/java/com/lj/usecase/di/Singleton.kt
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}

}