Skip to content

Commit 989e9db

Browse files
committed
Merge branch 'feature/single-component'
# Conflicts: # common/.gitignore # common/build.gradle # common/proguard-rules.pro # common/src/main/AndroidManifest.xml
2 parents 4f87cee + d6b34d3 commit 989e9db

File tree

36 files changed

+402
-90
lines changed

36 files changed

+402
-90
lines changed

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ android {
5050

5151
dependencies {
5252
api project(":core")
53+
api project(":dummy_service")
5354

5455
kapt 'com.google.dagger:dagger-compiler:2.27'
5556
}

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

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package cz.skywall.multimoduleexample
22

33
import android.app.Application
44
import android.content.SharedPreferences
5-
import cz.skywall.multimoduleexample.core.injection.CoreSubcomponent
6-
import cz.skywall.multimoduleexample.core.injection.DaggerModulesComponent
5+
import cz.skywall.multimoduleexample.core.injection.CoreComponentHolder
76
import cz.skywall.multimoduleexample.core.mapper.toDB
87
import cz.skywall.multimoduleexample.database.UserDao
98
import cz.skywall.multimoduleexample.injection.DaggerApplicationComponent
@@ -13,21 +12,15 @@ import javax.inject.Inject
1312

1413
class App : Application() {
1514

16-
@Inject lateinit var sharedPreferences: SharedPreferences
17-
@Inject lateinit var apiService: ApiService
18-
@Inject lateinit var userDao: UserDao
19-
20-
private val modulesComponent by lazy {
21-
DaggerModulesComponent.factory().create()
22-
}
15+
@Inject
16+
lateinit var sharedPreferences: SharedPreferences
17+
@Inject
18+
lateinit var apiService: ApiService
19+
@Inject
20+
lateinit var userDao: UserDao
2321

2422
private val applicationComponent by lazy {
25-
DaggerApplicationComponent.factory()
26-
.create(this, coreSubcomponent)
27-
}
28-
29-
val coreSubcomponent: CoreSubcomponent by lazy {
30-
modulesComponent.coreSubcomponentFactory().create(this)
23+
DaggerApplicationComponent.factory().create(this, CoreComponentHolder.getInstance(this))
3124
}
3225

3326
override fun onCreate() {

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

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
package cz.skywall.multimoduleexample.injection
22

3+
import android.app.Application
34
import cz.skywall.multimoduleexample.App
4-
import cz.skywall.multimoduleexample.core.injection.CoreSubcomponent
5+
import cz.skywall.multimoduleexample.core.injection.CoreComponent
56
import dagger.BindsInstance
67
import dagger.Component
78

9+
@ApplicationScope
810
@Component(
9-
modules = [
10-
ApplicationModule::class
11-
],
1211
dependencies = [
13-
CoreSubcomponent::class
12+
CoreComponent::class
1413
]
1514
)
16-
interface ApplicationComponent {
15+
internal interface ApplicationComponent {
1716

1817
@Component.Factory
1918
interface Factory {
20-
fun create(@BindsInstance app: App, coreSubcomponent: CoreSubcomponent): ApplicationComponent
19+
fun create(@BindsInstance application: Application, coreComponent: CoreComponent): ApplicationComponent
2120
}
2221

2322
fun inject(app: App)

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

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package cz.skywall.multimoduleexample.injection
2+
3+
import javax.inject.Scope
4+
5+
@Scope
6+
@Retention(AnnotationRetention.RUNTIME)
7+
annotation class ApplicationScope

app/src/main/res/navigation/main_nav_graph.xml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
4-
android:id="@+id/nav_graph"
5-
app:startDestination="@id/splashFragment">
6-
7-
<fragment
8-
android:id="@+id/splashFragment"
9-
android:name="cz.skywall.multimoduleexample.SplashFragment"
10-
android:label="Splash fragment" />
4+
android:id="@+id/nav_graph">
115

126
<include-dynamic
137
android:id="@+id/home_navigation_graph"
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<resources>
22
<string name="app_name">MultimoduleExample</string>
3+
<string name="title_dummy_service">dummy service</string>
34

5+
<string name="string_from_app">String from :app</string>
46
</resources>

common/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

common/build.gradle

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
plugins {
2+
id 'com.android.library'
3+
id 'kotlin-android'
4+
id 'kotlin-android-extensions'
5+
}
6+
7+
android {
8+
compileSdkVersion 29
9+
buildToolsVersion "29.0.3"
10+
11+
defaultConfig {
12+
minSdkVersion 23
13+
targetSdkVersion 29
14+
versionCode 1
15+
versionName "1.0"
16+
17+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
18+
consumerProguardFiles "consumer-rules.pro"
19+
}
20+
21+
buildTypes {
22+
release {
23+
minifyEnabled false
24+
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
25+
}
26+
}
27+
compileOptions {
28+
sourceCompatibility JavaVersion.VERSION_1_8
29+
targetCompatibility JavaVersion.VERSION_1_8
30+
}
31+
kotlinOptions {
32+
jvmTarget = '1.8'
33+
}
34+
}
35+
36+
dependencies {
37+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
38+
}

common/consumer-rules.pro

Whitespace-only changes.

0 commit comments

Comments
 (0)