Skip to content

Commit

Permalink
Change signatures of provider functions in di package
Browse files Browse the repository at this point in the history
  • Loading branch information
l2hyunwoo committed Sep 9, 2023
1 parent 5116fd6 commit 02a7d0b
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 28 deletions.
15 changes: 10 additions & 5 deletions app/src/main/java/com/nanamare/movie/di/RemoteMovieModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.nanamare.movie.di
import com.nanamare.data.source.remote.MovieApi
import com.nanamare.data.source.remote.impl.MovieRemoteRepositoryImpl
import com.nanamare.domain.repository.MovieRemoteRepository
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
Expand All @@ -20,9 +21,13 @@ class RemoteMovieModule {
@Provides
fun provideMovieApi(@Named("retrofit_tmdb") retrofit: Retrofit): MovieApi = retrofit.create()

@Singleton
@Provides
fun provideUpcomingMovieRepository(movieRemoteRepositoryImpl: MovieRemoteRepositoryImpl): MovieRemoteRepository =
movieRemoteRepositoryImpl

@InstallIn(SingletonComponent::class)
@Module
interface Binder {
@Singleton
@Binds
fun provideUpcomingMovieRepository(
movieRemoteRepositoryImpl: MovieRemoteRepositoryImpl
): MovieRemoteRepository
}
}
1 change: 0 additions & 1 deletion app/src/main/java/com/nanamare/movie/di/app/LogModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,4 @@ interface LogModule {
@Binds
@Singleton
fun provideLog(logImpl: LogImpl): Log

}
14 changes: 10 additions & 4 deletions app/src/main/java/com/nanamare/movie/di/app/NetworkModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.nanamare.base.util.NetworkConnectionImpl
import com.nanamare.data.BuildConfig
import com.nanamare.data.source.remote.interceptor.AuthenticationInterceptor
import com.nanamare.data.source.remote.interceptor.CacheInterceptor
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
Expand All @@ -29,6 +30,7 @@ import javax.inject.Singleton
class NetworkModule {

@Provides
@Singleton
fun provideHttpClientBuilder() = OkHttpClient.Builder()
.connectTimeout(TIME_OUT, TimeUnit.SECONDS)
.readTimeout(TIME_OUT, TimeUnit.SECONDS)
Expand Down Expand Up @@ -76,10 +78,14 @@ class NetworkModule {
.build()
}

@Singleton
@Provides
fun provideNetworkConnection(@ApplicationContext context: Context): NetworkConnection =
NetworkConnectionImpl(context)

@InstallIn(SingletonComponent::class)
@Module
interface Binder {
@Binds
@Singleton
fun bindNetworkConnection(connection: NetworkConnectionImpl): NetworkConnection
}

companion object {
private const val TIME_OUT = 30L
Expand Down
14 changes: 5 additions & 9 deletions app/src/main/java/com/nanamare/movie/di/app/ResourceModule.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
package com.nanamare.movie.di.app

import android.content.Context
import com.nanamare.movie.provider.ResourceProvider
import com.nanamare.movie.provider.ResourceProviderImpl
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@InstallIn(SingletonComponent::class)
@Module
class ResourceModule {
abstract class ResourceModule {

@Singleton
@Provides
fun provideResource(@ApplicationContext context: Context): ResourceProvider =
ResourceProviderImpl(context)

}
@Binds
abstract fun provideResource(provider: ResourceProviderImpl): ResourceProvider
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ import dagger.hilt.android.scopes.ViewModelScoped
@InstallIn(ViewModelComponent::class)
@Module
interface ViewModelModule {

@Binds
@ViewModelScoped
@get:[Binds]
val NavigationViewModelImpl.bindNavigationViewModelImpl: NavigationViewModel

fun bindNavigationViewModelImpl(viewModelImpl: NavigationViewModelImpl): NavigationViewModel
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.nanamare.movie.provider

import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext

class ResourceProviderImpl(private val context: Context) : ResourceProvider {
class ResourceProviderImpl(
@ApplicationContext private val context: Context
) : ResourceProvider {

override fun getString(id: Int): String = context.getString(id)

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ import com.nanamare.domain.usecase.SearchQuery
import retrofit2.await
import javax.inject.Inject

class MovieRemoteRepositoryImpl @Inject constructor(private val movieApi: MovieApi) :
MovieRemoteRepository {
class MovieRemoteRepositoryImpl @Inject constructor(
private val movieApi: MovieApi
) : MovieRemoteRepository {

override suspend fun getUpcomingMovie(page: Int): MovieResponseModel =
movieApi.getUpcomingMovie(page).await().toDomainModel()
Expand Down

0 comments on commit 02a7d0b

Please sign in to comment.