Skip to content

Commit eeec7cc

Browse files
authored
Centralise the DI code generation logic (#3562)
* Create Anvil extension helper * Use the helper everywhere
1 parent a9b45a2 commit eeec7cc

File tree

77 files changed

+322
-442
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+322
-442
lines changed

app/build.gradle.kts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@ import extension.allLibrariesImpl
1919
import extension.allServicesImpl
2020
import extension.koverDependencies
2121
import extension.locales
22+
import extension.setupAnvil
2223
import extension.setupKover
2324
import java.util.Locale
2425

2526
plugins {
2627
id("io.element.android-compose-application")
2728
alias(libs.plugins.kotlin.android)
28-
alias(libs.plugins.anvil)
29-
alias(libs.plugins.kapt)
3029
// When using precompiled plugins, we need to apply the firebase plugin like this
3130
id(libs.plugins.firebaseAppDistribution.get().pluginId)
3231
alias(libs.plugins.knit)
@@ -233,6 +232,11 @@ knit {
233232
}
234233
}
235234

235+
setupAnvil(
236+
generateDaggerCode = true,
237+
generateDaggerFactoriesUsingAnvil = false,
238+
)
239+
236240
dependencies {
237241
allLibrariesImpl()
238242
allServicesImpl()
@@ -244,11 +248,9 @@ dependencies {
244248
}
245249
allFeaturesImpl(rootDir, logger)
246250
implementation(projects.features.migration.api)
247-
implementation(projects.anvilannotations)
248251
implementation(projects.appnav)
249252
implementation(projects.appconfig)
250253
implementation(projects.libraries.uiStrings)
251-
anvil(projects.anvilcodegen)
252254

253255
if (ModulesConfig.pushProvidersConfig.includeFirebase) {
254256
"gplayImplementation"(projects.libraries.pushproviders.firebase)
@@ -274,9 +276,6 @@ dependencies {
274276

275277
implementation(libs.matrix.emojibase.bindings)
276278

277-
implementation(libs.dagger)
278-
kapt(libs.dagger.compiler)
279-
280279
testImplementation(libs.test.junit)
281280
testImplementation(libs.test.robolectric)
282281
testImplementation(libs.coroutines.test)

appnav/build.gradle.kts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,20 @@
88
@file:Suppress("UnstableApiUsage")
99

1010
import extension.allFeaturesApi
11+
import extension.setupAnvil
1112

1213
plugins {
1314
id("io.element.android-compose-library")
14-
alias(libs.plugins.anvil)
15-
alias(libs.plugins.kapt)
1615
id("kotlin-parcelize")
1716
}
1817

1918
android {
2019
namespace = "io.element.android.appnav"
2120
}
2221

23-
dependencies {
24-
implementation(projects.anvilannotations)
25-
anvil(projects.anvilcodegen)
26-
implementation(libs.dagger)
27-
kapt(libs.dagger.compiler)
22+
setupAnvil()
2823

24+
dependencies {
2925
allFeaturesApi(rootDir, logger)
3026

3127
implementation(projects.libraries.core)

features/analytics/impl/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2023, 2024 New Vector Ltd.
35
*
@@ -7,21 +9,16 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
id("kotlin-parcelize")
1213
}
1314

1415
android {
1516
namespace = "io.element.android.features.analytics.impl"
1617
}
1718

18-
anvil {
19-
generateDaggerFactories.set(true)
20-
}
19+
setupAnvil()
2120

2221
dependencies {
23-
implementation(projects.anvilannotations)
24-
anvil(projects.anvilcodegen)
2522
implementation(projects.libraries.androidutils)
2623
implementation(projects.libraries.core)
2724
implementation(projects.libraries.architecture)

features/cachecleaner/impl/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2023, 2024 New Vector Ltd.
35
*
@@ -7,20 +9,15 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
}
1213

1314
android {
1415
namespace = "io.element.android.features.cachecleaner.impl"
1516
}
1617

17-
anvil {
18-
generateDaggerFactories.set(true)
19-
}
18+
setupAnvil()
2019

2120
dependencies {
22-
implementation(projects.anvilannotations)
23-
anvil(projects.anvilcodegen)
2421
api(projects.features.cachecleaner.api)
2522
implementation(projects.libraries.core)
2623
implementation(projects.libraries.architecture)

features/call/impl/build.gradle.kts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2024 New Vector Ltd.
35
*
@@ -7,7 +9,6 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
id("kotlin-parcelize")
1213
alias(libs.plugins.kotlin.serialization)
1314
}
@@ -24,13 +25,10 @@ android {
2425
}
2526
}
2627

27-
anvil {
28-
generateDaggerFactories.set(true)
29-
}
28+
setupAnvil()
3029

3130
dependencies {
3231
implementation(projects.appconfig)
33-
implementation(projects.anvilannotations)
3432
implementation(projects.libraries.architecture)
3533
implementation(projects.libraries.core)
3634
implementation(projects.libraries.designsystem)

features/createroom/impl/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2022-2024 New Vector Ltd.
35
*
@@ -7,7 +9,6 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
id("kotlin-parcelize")
1213
}
1314

@@ -21,13 +22,9 @@ android {
2122
}
2223
}
2324

24-
anvil {
25-
generateDaggerFactories.set(true)
26-
}
25+
setupAnvil()
2726

2827
dependencies {
29-
implementation(projects.anvilannotations)
30-
anvil(projects.anvilcodegen)
3128
implementation(projects.libraries.core)
3229
implementation(projects.libraries.architecture)
3330
implementation(projects.libraries.matrix.api)

features/deactivation/impl/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2024 New Vector Ltd.
35
*
@@ -7,7 +9,6 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
id("kotlin-parcelize")
1213
}
1314

@@ -21,13 +22,9 @@ android {
2122
}
2223
}
2324

24-
anvil {
25-
generateDaggerFactories.set(true)
26-
}
25+
setupAnvil()
2726

2827
dependencies {
29-
implementation(projects.anvilannotations)
30-
anvil(projects.anvilcodegen)
3128
implementation(projects.libraries.androidutils)
3229
implementation(projects.libraries.core)
3330
implementation(projects.libraries.architecture)

features/ftue/impl/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2023, 2024 New Vector Ltd.
35
*
@@ -7,21 +9,16 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
id("kotlin-parcelize")
1213
}
1314

1415
android {
1516
namespace = "io.element.android.features.ftue.impl"
1617
}
1718

18-
anvil {
19-
generateDaggerFactories.set(true)
20-
}
19+
setupAnvil()
2120

2221
dependencies {
23-
implementation(projects.anvilannotations)
24-
anvil(projects.anvilcodegen)
2522
api(projects.features.ftue.api)
2623
implementation(projects.libraries.androidutils)
2724
implementation(projects.libraries.core)

features/invite/impl/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2023, 2024 New Vector Ltd.
35
*
@@ -7,21 +9,16 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
id("kotlin-parcelize")
1213
}
1314

1415
android {
1516
namespace = "io.element.android.features.invite.impl"
1617
}
1718

18-
anvil {
19-
generateDaggerFactories.set(true)
20-
}
19+
setupAnvil()
2120

2221
dependencies {
23-
implementation(projects.anvilannotations)
24-
anvil(projects.anvilcodegen)
2522
api(projects.features.invite.api)
2623
implementation(libs.androidx.datastore.preferences)
2724
implementation(projects.libraries.core)

features/joinroom/impl/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import extension.setupAnvil
2+
13
/*
24
* Copyright 2024 New Vector Ltd.
35
*
@@ -7,7 +9,6 @@
79

810
plugins {
911
id("io.element.android-compose-library")
10-
alias(libs.plugins.anvil)
1112
id("kotlin-parcelize")
1213
}
1314

@@ -20,13 +21,9 @@ android {
2021
}
2122
}
2223

23-
anvil {
24-
generateDaggerFactories.set(true)
25-
}
24+
setupAnvil()
2625

2726
dependencies {
28-
implementation(projects.anvilannotations)
29-
anvil(projects.anvilcodegen)
3027
api(projects.features.joinroom.api)
3128
implementation(projects.libraries.core)
3229
implementation(projects.libraries.architecture)

0 commit comments

Comments
 (0)