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
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
77 changed files with 327 additions and 447 deletions

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)

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)

View file

@ -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)

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)

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)
}
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)

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)

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)
}

View file

@ -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)

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)

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)

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)

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)

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)

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)

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)
}

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)
}

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)

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)

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)

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)

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)

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)

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)

View file

@ -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)

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)
}
@ -14,9 +15,7 @@ android {
namespace = "io.element.android.libraries.pushproviders.unifiedpush"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)

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)

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)

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.sqldelight)
}
@ -14,9 +15,7 @@ android {
namespace = "io.element.android.libraries.sessionstorage.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
implementation(libs.dagger)

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)

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)

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)

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)

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.voicerecorder.impl"
}
anvil {
generateDaggerFactories.set(true)
}
setupAnvil()
dependencies {
api(projects.libraries.voicerecorder.api)