Centralise the DI code generation logic (#3562)

* Create Anvil extension helper

* Use the helper everywhere
This commit is contained in:
Jorge Martin Espinosa
2024-09-30 14:20:28 +02:00
committed by GitHub
parent a9b45a2f57
commit eeec7cc785
77 changed files with 327 additions and 447 deletions
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
@@ -17,13 +18,9 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
anvil(projects.anvilcodegen)
implementation(projects.anvilannotations)
implementation(projects.libraries.di)
implementation(projects.libraries.core)
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,21 +9,16 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.cryptography.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
anvil(projects.anvilcodegen)
implementation(libs.dagger)
implementation(projects.anvilannotations)
implementation(projects.libraries.di)
api(projects.libraries.cryptography.api)
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -7,21 +9,16 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
android {
namespace = "io.element.android.libraries.dateformatter.impl"
dependencies {
anvil(projects.anvilcodegen)
implementation(libs.dagger)
implementation(projects.libraries.di)
implementation(projects.anvilannotations)
api(projects.libraries.dateformatter.api)
api(libs.datetime)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -6,16 +8,13 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.deeplink"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.libraries.di)
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
}
android {
@@ -20,14 +21,9 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
anvil(projects.anvilcodegen)
implementation(projects.anvilannotations)
implementation(projects.libraries.core)
implementation(projects.libraries.architecture)
implementation(projects.libraries.matrix.api)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
}
@@ -15,9 +16,7 @@ android {
namespace = "io.element.android.libraries.featureflag.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
api(projects.libraries.featureflag.api)
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
}
@@ -15,12 +16,8 @@ android {
namespace = "io.element.android.libraries.featureflag.ui"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
implementation(projects.libraries.designsystem)
}
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2024 New Vector Ltd.
*
@@ -7,21 +9,16 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.fullscreenintent.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
api(projects.libraries.fullscreenintent.api)
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
implementation(projects.libraries.core)
implementation(projects.libraries.architecture)
implementation(projects.libraries.permissions.api)
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -7,24 +9,19 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
android {
namespace = "io.element.android.libraries.indicator.impl"
}
dependencies {
anvil(projects.anvilcodegen)
implementation(libs.dagger)
implementation(projects.libraries.di)
implementation(projects.libraries.featureflag.api)
implementation(projects.libraries.matrix.api)
implementation(projects.anvilannotations)
implementation(libs.coroutines.core)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -8,7 +10,6 @@
plugins {
id("io.element.android-compose-library")
id("kotlin-parcelize")
alias(libs.plugins.anvil)
alias(libs.plugins.kotlin.serialization)
}
@@ -20,9 +21,7 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.libraries.di)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
alias(libs.plugins.kotlin.serialization)
}
@@ -15,9 +16,7 @@ android {
namespace = "io.element.android.libraries.matrix.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
releaseImplementation(libs.matrix.sdk)
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
}
@@ -20,13 +21,9 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
implementation(projects.libraries.di)
implementation(projects.libraries.architecture)
implementation(projects.libraries.androidutils)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,16 +8,13 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.mediaplayer.api"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.libraries.matrix.api)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,16 +8,13 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.mediaplayer.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
api(projects.libraries.mediaplayer.api)
+22 -26
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,34 +9,28 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
setupAnvil()
android {
namespace = "io.element.android.libraries.mediaupload.api"
anvil {
generateDaggerFactories.set(true)
}
dependencies {
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
implementation(projects.libraries.architecture)
implementation(projects.libraries.androidutils)
implementation(projects.libraries.core)
implementation(projects.libraries.di)
api(projects.libraries.matrix.api)
implementation(libs.inject)
implementation(libs.coroutines.core)
testImplementation(projects.libraries.matrix.test)
testImplementation(projects.libraries.mediaupload.test)
testImplementation(projects.tests.testutils)
testImplementation(libs.test.junit)
testImplementation(libs.test.truth)
testImplementation(libs.coroutines.test)
testImplementation(libs.test.robolectric)
}
}
dependencies {
implementation(projects.libraries.architecture)
implementation(projects.libraries.androidutils)
implementation(projects.libraries.core)
implementation(projects.libraries.di)
api(projects.libraries.matrix.api)
implementation(libs.inject)
implementation(libs.coroutines.core)
testImplementation(projects.libraries.matrix.test)
testImplementation(projects.libraries.mediaupload.test)
testImplementation(projects.tests.testutils)
testImplementation(libs.test.junit)
testImplementation(libs.test.truth)
testImplementation(libs.coroutines.test)
testImplementation(libs.test.robolectric)
}
+26 -30
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,44 +9,38 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.mediaupload.impl"
anvil {
generateDaggerFactories.set(true)
}
testOptions {
unitTests {
isIncludeAndroidResources = true
}
}
dependencies {
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
api(projects.libraries.mediaupload.api)
implementation(projects.libraries.architecture)
implementation(projects.libraries.androidutils)
implementation(projects.libraries.core)
implementation(projects.libraries.di)
implementation(projects.libraries.matrix.api)
implementation(projects.services.toolbox.api)
implementation(libs.inject)
implementation(libs.androidx.exifinterface)
implementation(libs.coroutines.core)
implementation(libs.otaliastudios.transcoder)
implementation(libs.vanniktech.blurhash)
testImplementation(libs.test.junit)
testImplementation(libs.test.robolectric)
testImplementation(libs.coroutines.test)
testImplementation(libs.test.truth)
testImplementation(projects.tests.testutils)
testImplementation(projects.services.toolbox.test)
}
}
setupAnvil()
dependencies {
api(projects.libraries.mediaupload.api)
implementation(projects.libraries.architecture)
implementation(projects.libraries.androidutils)
implementation(projects.libraries.core)
implementation(projects.libraries.di)
implementation(projects.libraries.matrix.api)
implementation(projects.services.toolbox.api)
implementation(libs.inject)
implementation(libs.androidx.exifinterface)
implementation(libs.coroutines.core)
implementation(libs.otaliastudios.transcoder)
implementation(libs.vanniktech.blurhash)
testImplementation(libs.test.junit)
testImplementation(libs.test.robolectric)
testImplementation(libs.coroutines.test)
testImplementation(libs.test.truth)
testImplementation(projects.tests.testutils)
testImplementation(projects.services.toolbox.test)
}
+3 -7
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
}
@@ -19,14 +20,9 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
anvil(projects.anvilcodegen)
implementation(projects.anvilannotations)
implementation(libs.coil.compose)
implementation(libs.androidx.media3.exoplayer)
implementation(libs.androidx.media3.ui)
+3 -7
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
}
@@ -14,14 +15,9 @@ android {
namespace = "io.element.android.libraries.mediaviewer.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
anvil(projects.anvilcodegen)
implementation(projects.anvilannotations)
implementation(libs.coroutines.core)
implementation(libs.dagger)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
@@ -19,9 +20,7 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
alias(libs.plugins.kotlin.serialization)
}
@@ -22,14 +23,10 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.anvilannotations)
implementation(projects.appconfig)
anvil(projects.anvilcodegen)
implementation(projects.libraries.core)
implementation(projects.libraries.androidutils)
implementation(projects.libraries.architecture)
+3 -7
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
}
android {
@@ -20,14 +21,9 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
anvil(projects.anvilcodegen)
implementation(projects.anvilannotations)
implementation(libs.accompanist.permission)
implementation(libs.androidx.datastore.preferences)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,16 +9,13 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.preferences.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
api(projects.libraries.preferences.api)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
alias(libs.plugins.kotlin.serialization)
}
@@ -20,9 +21,7 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)
@@ -7,9 +7,10 @@
@file:Suppress("UnstableApiUsage")
import extension.setupAnvil
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
@@ -55,9 +56,7 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
alias(libs.plugins.kotlin.serialization)
}
@@ -14,9 +15,7 @@ android {
namespace = "io.element.android.libraries.pushproviders.unifiedpush"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
@@ -18,9 +19,7 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
}
@@ -15,13 +16,9 @@ android {
namespace = "io.element.android.libraries.roomselect.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
implementation(projects.libraries.core)
implementation(projects.libraries.androidutils)
implementation(projects.libraries.architecture)
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
alias(libs.plugins.sqldelight)
}
@@ -14,9 +15,7 @@ android {
namespace = "io.element.android.libraries.sessionstorage.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)
+3 -5
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,7 +9,6 @@
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
id("kotlin-parcelize")
}
@@ -18,12 +19,9 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.anvilannotations)
implementation(projects.libraries.architecture)
implementation(projects.libraries.uiStrings)
implementation(projects.libraries.androidutils)
+3 -6
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,7 +8,6 @@
*/
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
alias(libs.plugins.kotlin.serialization)
}
@@ -20,13 +21,9 @@ android {
}
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.anvilannotations)
anvil(projects.anvilcodegen)
implementation(libs.dagger)
implementation(projects.libraries.architecture)
implementation(projects.libraries.designsystem)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -7,16 +9,13 @@
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.usersearch.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(projects.libraries.core)
+3 -4
View File
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,16 +8,13 @@
*/
plugins {
id("io.element.android-compose-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.voicerecorder.api"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.androidx.annotationjvm)
@@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2023, 2024 New Vector Ltd.
*
@@ -6,16 +8,13 @@
*/
plugins {
id("io.element.android-library")
alias(libs.plugins.anvil)
}
android {
namespace = "io.element.android.libraries.voicerecorder.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
api(projects.libraries.voicerecorder.api)