Skip to content

Commit c91fc67

Browse files
committed
Define module contracts
1 parent 2a6f8a3 commit c91fc67

File tree

4 files changed

+21
-11
lines changed

4 files changed

+21
-11
lines changed

app/src/main/java/cz/skywall/multimoduleexample/App.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@ import javax.inject.Inject
1111

1212
class App : Application() {
1313

14-
@Inject lateinit var sharedPreferences: SharedPreferences
15-
@Inject lateinit var apiService: ApiService
16-
@Inject lateinit var userDao: UserDao
14+
@Inject
15+
lateinit var sharedPreferences: SharedPreferences
16+
@Inject
17+
lateinit var apiService: ApiService
18+
@Inject
19+
lateinit var userDao: UserDao
1720

1821
companion object {
19-
lateinit var INSTANCE : App
22+
lateinit var INSTANCE: App
2023
}
2124

2225
val applicationComponent by lazy {

app/src/main/java/cz/skywall/multimoduleexample/injection/ApplicationComponent.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import android.app.Application
44
import android.content.SharedPreferences
55
import cz.skywall.multimoduleexample.App
66
import cz.skywall.multimoduleexample.core.injection.CoreModule
7+
import cz.skywall.multimoduleexample.database.DatabaseContract
78
import cz.skywall.multimoduleexample.database.DatabaseModule
8-
import cz.skywall.multimoduleexample.database.UserDao
9-
import cz.skywall.multimoduleexample.network.ApiService
9+
import cz.skywall.multimoduleexample.network.NetworkContract
1010
import cz.skywall.multimoduleexample.network.NetworkModule
1111
import dagger.BindsInstance
1212
import dagger.Component
@@ -20,7 +20,7 @@ import javax.inject.Singleton
2020
NetworkModule::class
2121
]
2222
)
23-
interface ApplicationComponent {
23+
interface ApplicationComponent : DatabaseContract, NetworkContract {
2424

2525
@Component.Factory
2626
interface Factory {
@@ -29,10 +29,6 @@ interface ApplicationComponent {
2929

3030
fun inject(app: App)
3131

32-
fun userDao(): UserDao
33-
34-
fun apiService(): ApiService
35-
3632
fun sharedPreference(): SharedPreferences
3733

3834
fun application(): Application
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package cz.skywall.multimoduleexample.database
2+
3+
interface DatabaseContract {
4+
5+
fun userDao(): UserDao
6+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package cz.skywall.multimoduleexample.network
2+
3+
interface NetworkContract {
4+
fun apiService(): ApiService
5+
}

0 commit comments

Comments
 (0)