Skip to content

Commit ee8eac3

Browse files
committed
Refactor :core:network DI
- Delete unused `NetworkModule` from benchmark sourceSet (contains unknowns references) - Extract common bindings into a single `NetworkModule` - Expose "flavored" bindings through `FlavoredNetworkModule`s
1 parent 7e0bfb4 commit ee8eac3

File tree

3 files changed

+16
-70
lines changed

3 files changed

+16
-70
lines changed

core/network/src/demo/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt renamed to core/network/src/demo/java/com/google/samples/apps/nowinandroid/core/network/di/FlavoredNetworkModule.kt

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,39 +16,17 @@
1616

1717
package com.google.samples.apps.nowinandroid.core.network.di
1818

19-
import android.content.Context
2019
import com.google.samples.apps.nowinandroid.core.network.NiaNetworkDataSource
21-
import com.google.samples.apps.nowinandroid.core.network.fake.FakeAssetManager
2220
import com.google.samples.apps.nowinandroid.core.network.fake.FakeNiaNetworkDataSource
2321
import dagger.Binds
2422
import dagger.Module
25-
import dagger.Provides
2623
import dagger.hilt.InstallIn
27-
import dagger.hilt.android.qualifiers.ApplicationContext
2824
import dagger.hilt.components.SingletonComponent
29-
import javax.inject.Singleton
30-
import kotlinx.serialization.json.Json
3125

3226
@Module
3327
@InstallIn(SingletonComponent::class)
34-
interface NetworkModule {
28+
interface FlavoredNetworkModule {
3529

3630
@Binds
37-
fun bindsNiaNetwork(
38-
niANetwork: FakeNiaNetworkDataSource
39-
): NiaNetworkDataSource
40-
41-
companion object {
42-
@Provides
43-
@Singleton
44-
fun providesNetworkJson(): Json = Json {
45-
ignoreUnknownKeys = true
46-
}
47-
48-
@Provides
49-
@Singleton
50-
fun providesFakeAssetManager(
51-
@ApplicationContext context: Context,
52-
): FakeAssetManager = FakeAssetManager(context.assets::open)
53-
}
31+
fun FakeNiaNetworkDataSource.binds(): NiaNetworkDataSource
5432
}

core/network/src/benchmark/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt renamed to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,28 @@
1717
package com.google.samples.apps.nowinandroid.core.network.di
1818

1919
import android.content.Context
20-
import com.google.samples.apps.nowinandroid.core.network.NiANetwork
2120
import com.google.samples.apps.nowinandroid.core.network.fake.FakeAssetManager
22-
import com.google.samples.apps.nowinandroid.core.network.fake.FakeNiANetwork
23-
import dagger.Binds
2421
import dagger.Module
2522
import dagger.Provides
26-
import dagger.hilt.android.qualifiers.ApplicationContext
2723
import dagger.hilt.InstallIn
24+
import dagger.hilt.android.qualifiers.ApplicationContext
2825
import dagger.hilt.components.SingletonComponent
2926
import javax.inject.Singleton
3027
import kotlinx.serialization.json.Json
3128

3229
@Module
3330
@InstallIn(SingletonComponent::class)
34-
interface NetworkModule {
35-
36-
@Binds
37-
fun bindsNiANetwork(
38-
niANetwork: FakeNiANetwork
39-
): NiANetwork
31+
object NetworkModule {
4032

41-
companion object {
42-
@Provides
43-
@Singleton
44-
fun providesNetworkJson(): Json = Json {
45-
ignoreUnknownKeys = true
46-
}
47-
48-
@Provides
49-
@Singleton
50-
fun providesFakeAssetManager(
51-
@ApplicationContext context: Context
52-
): FakeAssetManager = FakeAssetManager(context.assets::open)
33+
@Provides
34+
@Singleton
35+
fun providesNetworkJson(): Json = Json {
36+
ignoreUnknownKeys = true
5337
}
38+
39+
@Provides
40+
@Singleton
41+
fun providesFakeAssetManager(
42+
@ApplicationContext context: Context,
43+
): FakeAssetManager = FakeAssetManager(context.assets::open)
5444
}

core/network/src/prod/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt renamed to core/network/src/prod/java/com/google/samples/apps/nowinandroid/core/network/di/FlavoredNetworkModule.kt

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,39 +16,17 @@
1616

1717
package com.google.samples.apps.nowinandroid.core.network.di
1818

19-
import android.content.Context
20-
import com.google.samples.apps.nowinandroid.core.network.fake.FakeAssetManager
2119
import com.google.samples.apps.nowinandroid.core.network.NiaNetworkDataSource
2220
import com.google.samples.apps.nowinandroid.core.network.retrofit.RetrofitNiaNetwork
2321
import dagger.Binds
2422
import dagger.Module
25-
import dagger.Provides
26-
import dagger.hilt.android.qualifiers.ApplicationContext
2723
import dagger.hilt.InstallIn
2824
import dagger.hilt.components.SingletonComponent
29-
import javax.inject.Singleton
30-
import kotlinx.serialization.json.Json
3125

3226
@Module
3327
@InstallIn(SingletonComponent::class)
34-
interface NetworkModule {
28+
interface FlavoredNetworkModule {
3529

3630
@Binds
37-
fun bindsNiaNetwork(
38-
niANetwork: RetrofitNiaNetwork
39-
): NiaNetworkDataSource
40-
41-
companion object {
42-
@Provides
43-
@Singleton
44-
fun providesNetworkJson(): Json = Json {
45-
ignoreUnknownKeys = true
46-
}
47-
48-
@Provides
49-
@Singleton
50-
fun providesFakeAssetManager(
51-
@ApplicationContext context: Context,
52-
): FakeAssetManager = FakeAssetManager(context.assets::open)
53-
}
31+
fun RetrofitNiaNetwork.binds(): NiaNetworkDataSource
5432
}

0 commit comments

Comments
 (0)