From c6893de9bb9bdc9fce885692c760e6eac0aa26c2 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Tue, 29 Aug 2023 23:39:25 +0200 Subject: [PATCH] [Gradle] Update Duckduckgo build regression benchmark Compare against Kotlin 1.9.10 release. ^KT-61190 Fixed --- .../benchmarkScripts/duckduckgo.benchmark.kts | 8 +- .../files/duckduckgo-kotlin-repo.patch | 883 ++++++++++++++++-- .../regression-benchmarks/build.gradle.kts | 2 +- 3 files changed, 821 insertions(+), 72 deletions(-) diff --git a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts index d9796d9779a..3c31366eb7d 100644 --- a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts +++ b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/duckduckgo.benchmark.kts @@ -4,8 +4,8 @@ @file:BenchmarkProject( name = "duckduckgo", gitUrl = "https://github.com/duckduckgo/Android.git", - gitCommitSha = "3df1c07fad63f238f5e02050320c06abde732f58", - stableKotlinVersion = "1.8.21", + gitCommitSha = "db1dce8f09935a2bef27cd790f5581aafdcbb0a6", + stableKotlinVersion = "1.9.10", ) import java.io.File @@ -33,7 +33,7 @@ runBenchmarks( useGradleArgs("--no-build-cache") runTasks(":app:assemblePlayDebug") - applyAbiChangeTo("common/src/main/java/com/duckduckgo/app/global/VpnViewModelFactory.kt") + applyAbiChangeTo("common/common-utils/src/main/java/com/duckduckgo/app/global/VpnViewModelFactory.kt") } scenario { @@ -58,7 +58,7 @@ runBenchmarks( runTasks(":app:assemblePlayDebug") - applyAndroidResourceValueChange("common/src/main/res/values/strings-common.xml") + applyAndroidResourceValueChange("common/common-utils/src/main/res/values/strings-common.xml") } scenario { diff --git a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-repo.patch b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-repo.patch index 66af535bf80..78ac8f13fc7 100644 --- a/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-repo.patch +++ b/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/files/duckduckgo-kotlin-repo.patch @@ -1,67 +1,25 @@ - diff --git a/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/ContributesRemoteFeatureCodeGenerator.kt b/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/ContributesRemoteFeatureCodeGenerator.kt -index 483cc75b1..d24e836ab 100644 ---- a/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/ContributesRemoteFeatureCodeGenerator.kt -+++ b/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/ContributesRemoteFeatureCodeGenerator.kt -@@ -827,7 +827,7 @@ class ContributesRemoteFeatureCodeGenerator : CodeGenerator { - } - - // validate functions must be annotated with DefaultValue -- if (boundType.declaredFunctions().any { !it.isAnnotatedWith(Toggle.DefaultValue::class.fqName) }) { -+ if (boundType.declaredFunctions().any { !it.isAnnotatedWith(listOf(Toggle.DefaultValue::class.fqName)) }) { - throw AnvilCompilationException( - "All functions in ${boundType.fqName} must be annotated with [Toggle.DefaultValue]", - element = vmClass.clazz.identifyingElement, -diff --git a/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/Extensions.kt b/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/Extensions.kt -index 8b38dd9a3..20dd1f342 100644 ---- a/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/Extensions.kt -+++ b/anvil/anvil-compiler/src/main/java/com/duckduckgo/anvil/compiler/Extensions.kt -@@ -17,9 +17,11 @@ - package com.duckduckgo.anvil.compiler - - import com.squareup.anvil.annotations.ExperimentalAnvilApi -+import com.squareup.anvil.compiler.internal.fqNameOrNull - import com.squareup.anvil.compiler.internal.reference.AnnotatedReference - import com.squareup.anvil.compiler.internal.reference.AnnotationReference - import com.squareup.anvil.compiler.internal.reference.ClassReference -+import com.squareup.anvil.compiler.internal.reference.FunctionReference - import com.squareup.anvil.compiler.internal.reference.argumentAt - import org.jetbrains.kotlin.name.FqName - -@@ -31,6 +33,18 @@ internal fun AnnotatedReference.isAnnotatedWith(fqName: List): Boolean { - return annotations.any { it.fqName in fqName } - } - -+@OptIn(ExperimentalAnvilApi::class) -+internal fun FunctionReference.isAnnotatedWith(fqNames: List): Boolean { -+ return when (this) { -+ is FunctionReference.Psi -> function.annotations.any { annotation -> -+ fqNames.any { annotation.fqNameOrNull(module) == it } -+ } -+ is FunctionReference.Descriptor -> fqNames.any { fqName -> -+ function.annotations.any { it.fqName == fqName } -+ } -+ } -+} -+ - @OptIn(ExperimentalAnvilApi::class) - internal fun AnnotatedReference.fqNameIntersect(fqName: List): List { - annotations.map { it.fqName }.intersect(fqName.toSet()).let { diff --git a/build.gradle b/build.gradle -index 1a1c2897c..768116f6f 100644 +index b445a8d6a..851f36283 100644 --- a/build.gradle +++ b/build.gradle -@@ -3,9 +3,8 @@ +@@ -3,20 +3,20 @@ buildscript { ext { -- kotlin_version = '1.7.10' - spotless = "6.1.2" -- anvil_version = "2.4.1" -+ anvil_version = "2.4.5" - gradle_plugin = "7.2.2" // When updating, also update lint_version - lint_version = "30.2.2" // This value must always be gradle_plugin + 23 +- kotlin_version = '1.8.10' + spotless = '6.1.2' +- anvil_version = '2.4.4' +- gradle_plugin = '7.4.2' // When updating, also update lint_version ++ anvil_version = '2.4.7' ++ gradle_plugin = '8.1.1' // When updating, also update lint_version + lint_version = '30.4.2' // This value must always be gradle_plugin + 23 min_sdk = 23 -@@ -16,6 +15,7 @@ buildscript { + target_sdk = 33 +- compile_sdk = 33 ++ compile_sdk = 34 + fladle_version = '0.17.4' + kotlinter_version = '3.12.0' + dokka_version = '1.8.20' } repositories { @@ -69,7 +27,7 @@ index 1a1c2897c..768116f6f 100644 google() mavenCentral() maven { url "https://plugins.gradle.org/m2/" } -@@ -24,7 +24,7 @@ buildscript { +@@ -25,7 +25,7 @@ buildscript { classpath "com.android.tools.build:gradle:$gradle_plugin" classpath "com.diffplug.spotless:spotless-plugin-gradle:$spotless" classpath "com.squareup.anvil:gradle-plugin:$anvil_version" @@ -78,7 +36,7 @@ index 1a1c2897c..768116f6f 100644 // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files -@@ -38,6 +38,7 @@ plugins { +@@ -40,6 +40,7 @@ plugins { allprojects { repositories { @@ -86,7 +44,7 @@ index 1a1c2897c..768116f6f 100644 google() mavenCentral() } -@@ -138,4 +139,4 @@ fladle { +@@ -148,4 +149,4 @@ fladle { } } @@ -97,9 +55,9 @@ diff --git a/gradle.properties b/gradle.properties index 709ee46cd..272c1dd8f 100644 --- a/gradle.properties +++ b/gradle.properties -@@ -21,3 +21,4 @@ org.gradle.caching=true - org.gradle.parallel=true - org.gradle.configureondemand=true +@@ -23,3 +23,4 @@ org.gradle.caching=true + android.defaults.buildfeatures.buildconfig=true + android.nonFinalResIds=false +kotlinVersion= diff --git a/versions.properties b/versions.properties @@ -111,7 +69,7 @@ index b6fea38be..fcd8cdb7b 100644 version.androidx.lifecycle=2.5.1 -version.androidx.room=2.5.0 -+version.androidx.room=2.6.0-alpha01 ++version.androidx.room=2.6.0-beta01 version.androidx.swiperefreshlayout=1.1.0 @@ -119,8 +77,799 @@ index b6fea38be..fcd8cdb7b 100644 version.google.android.material=1.7.0 --version.google.dagger=2.44.2 -+version.google.dagger=2.46.1 +-version.google.dagger=2.46.1 ++version.google.dagger=2.47 version.jakewharton.rxrelay2=2.0.0 - + +diff --git a/ad-click/ad-click-store/build.gradle b/ad-click/ad-click-store/build.gradle +index 6e316a4a6..459044b4b 100644 +--- a/ad-click/ad-click-store/build.gradle ++++ b/ad-click/ad-click-store/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.adclick.store" ++ + dependencies { + implementation project(path: ':common-utils') + implementation project(path: ':ad-click-api') +@@ -58,4 +60,4 @@ dependencies { + testImplementation 'app.cash.turbine:turbine:_' + testImplementation Testing.robolectric + testImplementation project(path: ':common-test') +-} +\ No newline at end of file ++} +diff --git a/ad-click/ad-click-store/src/main/AndroidManifest.xml b/ad-click/ad-click-store/src/main/AndroidManifest.xml +index 9e79cda18..8074ffc9f 100644 +--- a/ad-click/ad-click-store/src/main/AndroidManifest.xml ++++ b/ad-click/ad-click-store/src/main/AndroidManifest.xml +@@ -15,7 +15,4 @@ + ~ limitations under the License. + --> + +- +- +- +\ No newline at end of file ++ +diff --git a/app-tracking-protection/vpn-impl/build.gradle b/app-tracking-protection/vpn-impl/build.gradle +index cfdbf2a68..6878cd5d0 100644 +--- a/app-tracking-protection/vpn-impl/build.gradle ++++ b/app-tracking-protection/vpn-impl/build.gradle +@@ -24,6 +24,7 @@ plugins { + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + + android { ++ namespace = "com.duckduckgo.mobile.android.vpn" + lintOptions { + baseline file("lint-baseline.xml") + } +@@ -132,4 +133,4 @@ dependencies { + testImplementation Testing.robolectric + testImplementation project(':common-test') + testImplementation project(':vpn-api-test') +-} +\ No newline at end of file ++} +diff --git a/app-tracking-protection/vpn-impl/src/main/AndroidManifest.xml b/app-tracking-protection/vpn-impl/src/main/AndroidManifest.xml +index fc9ebbc6d..91c6c81c7 100644 +--- a/app-tracking-protection/vpn-impl/src/main/AndroidManifest.xml ++++ b/app-tracking-protection/vpn-impl/src/main/AndroidManifest.xml +@@ -1,6 +1,5 @@ + +- ++ + + + +@@ -134,4 +133,4 @@ + + + +- +\ No newline at end of file ++ +diff --git a/app-tracking-protection/vpn-internal/build.gradle b/app-tracking-protection/vpn-internal/build.gradle +index 79a28f03e..10eedfdd2 100644 +--- a/app-tracking-protection/vpn-internal/build.gradle ++++ b/app-tracking-protection/vpn-internal/build.gradle +@@ -23,6 +23,7 @@ plugins { + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + + android { ++ namespace = "com.duckduckgo.mobile.android.vpn" + lintOptions { + baseline file("lint-baseline.xml") + } +@@ -89,4 +90,4 @@ dependencies { + exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug" + } + testImplementation Testing.junit4 +-} +\ No newline at end of file ++} +diff --git a/app-tracking-protection/vpn-internal/src/main/AndroidManifest.xml b/app-tracking-protection/vpn-internal/src/main/AndroidManifest.xml +index 334cd9396..cefa04a4f 100644 +--- a/app-tracking-protection/vpn-internal/src/main/AndroidManifest.xml ++++ b/app-tracking-protection/vpn-internal/src/main/AndroidManifest.xml +@@ -1,6 +1,5 @@ + +- ++ + + + +@@ -14,4 +13,4 @@ + + + +- +\ No newline at end of file ++ +diff --git a/app/build.gradle b/app/build.gradle +index 2c2f0d413..74b7e7c93 100644 +--- a/app/build.gradle ++++ b/app/build.gradle +@@ -12,6 +12,7 @@ ext { + } + + android { ++ namespace = "com.duckduckgo.app.browser" + defaultConfig { + if (project.hasProperty('internal-testing')) { + applicationId "com.quackquackgo.mobile" +diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml +index ca4c830b1..87dd5f113 100644 +--- a/app/src/main/AndroidManifest.xml ++++ b/app/src/main/AndroidManifest.xml +@@ -1,7 +1,7 @@ + + ++ > + + + +diff --git a/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt b/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt +index beb37d2cc..1ebbf42cc 100644 +--- a/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt ++++ b/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt +@@ -49,7 +49,6 @@ import javax.inject.Inject + import kotlin.coroutines.CoroutineContext + import kotlinx.coroutines.ExperimentalCoroutinesApi + import kotlinx.coroutines.FlowPreview +-import kotlinx.coroutines.channels.ConflatedBroadcastChannel + import kotlinx.coroutines.flow.* + import kotlinx.coroutines.withContext + import timber.log.Timber +@@ -76,12 +75,12 @@ class CtaViewModel @Inject constructor( + + @ExperimentalCoroutinesApi + @VisibleForTesting +- val isFireButtonPulseAnimationFlowEnabled = ConflatedBroadcastChannel(true) ++ val isFireButtonPulseAnimationFlowEnabled = MutableStateFlow(true) + + @FlowPreview + @ExperimentalCoroutinesApi + val showFireButtonPulseAnimation: Flow = +- isFireButtonPulseAnimationFlowEnabled.asFlow() ++ isFireButtonPulseAnimationFlowEnabled + .flatMapLatest { + when (it) { + true -> getShowFireButtonPulseAnimationFlow() +@@ -350,7 +349,7 @@ class CtaViewModel @Inject constructor( + .onEach { (_, forceStopAnimation) -> + withContext(dispatchers.io()) { + if (pulseAnimationDisabled()) { +- isFireButtonPulseAnimationFlowEnabled.send(false) ++ isFireButtonPulseAnimationFlowEnabled.emit(false) + } + if (forceStopAnimation) { + dismissPulseAnimation() +diff --git a/app/src/main/java/com/duckduckgo/app/onboarding/ui/page/WelcomePage.kt b/app/src/main/java/com/duckduckgo/app/onboarding/ui/page/WelcomePage.kt +index 34b9808f1..f9595dc95 100644 +--- a/app/src/main/java/com/duckduckgo/app/onboarding/ui/page/WelcomePage.kt ++++ b/app/src/main/java/com/duckduckgo/app/onboarding/ui/page/WelcomePage.kt +@@ -38,7 +38,6 @@ import com.duckduckgo.di.scopes.FragmentScope + import com.duckduckgo.mobile.android.ui.viewbinding.viewBinding + import javax.inject.Inject + import kotlinx.coroutines.ExperimentalCoroutinesApi +-import kotlinx.coroutines.channels.BroadcastChannel + import kotlinx.coroutines.flow.* + import kotlinx.coroutines.launch + +@@ -68,7 +67,7 @@ class WelcomePage : OnboardingPageFragment(R.layout.content_onboarding_welcome) + private var welcomeAnimationFinished = false + + // we use a BroadcastChannel because we don't want to emit the last value upon subscription +- private val events = BroadcastChannel(1) ++ private val events = MutableSharedFlow(1) + + private val welcomePageViewModel: WelcomePageViewModel by lazy { + ViewModelProvider(this, viewModelFactory).get(WelcomePageViewModel::class.java) +@@ -87,7 +86,7 @@ class WelcomePage : OnboardingPageFragment(R.layout.content_onboarding_welcome) + setSkipAnimationListener() + + lifecycleScope.launch { +- events.asFlow() ++ events + .flatMapLatest { welcomePageViewModel.reduce(it) } + .collect(::render) + } +@@ -116,7 +115,7 @@ class WelcomePage : OnboardingPageFragment(R.layout.content_onboarding_welcome) + + private fun event(event: WelcomePageView.Event) { + lifecycleScope.launch { +- events.send(event) ++ events.emit(event) + } + } + +diff --git a/autoconsent/autoconsent-impl/build.gradle b/autoconsent/autoconsent-impl/build.gradle +index 03aa1317b..903f5783c 100644 +--- a/autoconsent/autoconsent-impl/build.gradle ++++ b/autoconsent/autoconsent-impl/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.autoconsent.impl" ++ + dependencies { + anvil project(path: ':anvil-compiler') + implementation project(path: ':anvil-annotations') +@@ -91,4 +93,4 @@ android { + includeAndroidResources = true + } + } +-} +\ No newline at end of file ++} +diff --git a/autoconsent/autoconsent-impl/src/main/AndroidManifest.xml b/autoconsent/autoconsent-impl/src/main/AndroidManifest.xml +index 59799ae04..b9acb93b8 100644 +--- a/autoconsent/autoconsent-impl/src/main/AndroidManifest.xml ++++ b/autoconsent/autoconsent-impl/src/main/AndroidManifest.xml +@@ -14,8 +14,7 @@ + ~ limitations under the License. + --> + +- ++ + + + +- +\ No newline at end of file ++ +diff --git a/autofill/autofill-impl/build.gradle b/autofill/autofill-impl/build.gradle +index fc3858c2f..bd0a0a759 100644 +--- a/autofill/autofill-impl/build.gradle ++++ b/autofill/autofill-impl/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.autofill.impl" ++ + dependencies { + implementation project(path: ':app-build-config-api') + implementation project(path: ':privacy-config-api') +diff --git a/autofill/autofill-impl/src/main/AndroidManifest.xml b/autofill/autofill-impl/src/main/AndroidManifest.xml +index 8a18ef859..148e24fba 100644 +--- a/autofill/autofill-impl/src/main/AndroidManifest.xml ++++ b/autofill/autofill-impl/src/main/AndroidManifest.xml +@@ -14,8 +14,7 @@ + ~ limitations under the License. + --> + +- ++ + + + + + +- +\ No newline at end of file ++ +diff --git a/common/common-test/build.gradle b/common/common-test/build.gradle +index 0d7ec015d..b4ef05e64 100644 +--- a/common/common-test/build.gradle ++++ b/common/common-test/build.gradle +@@ -5,6 +5,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.app.test" ++ + dependencies { + + // Dependencies for this Module +@@ -22,4 +24,4 @@ dependencies { + } + implementation Testing.junit4 + +-} +\ No newline at end of file ++} +diff --git a/common/common-test/src/main/AndroidManifest.xml b/common/common-test/src/main/AndroidManifest.xml +index 5ddb1f65b..b271bf909 100644 +--- a/common/common-test/src/main/AndroidManifest.xml ++++ b/common/common-test/src/main/AndroidManifest.xml +@@ -15,8 +15,7 @@ + ~ limitations under the License. + --> + +- ++ + + + +- +\ No newline at end of file ++ +diff --git a/common/common-ui/build.gradle b/common/common-ui/build.gradle +index 2de7f9661..60bb54b46 100644 +--- a/common/common-ui/build.gradle ++++ b/common/common-ui/build.gradle +@@ -23,6 +23,7 @@ plugins { + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + + android { ++ namespace = "com.duckduckgo.mobile.android" + anvil { + generateDaggerFactories = true // default is false + } +@@ -63,4 +64,4 @@ dependencies { + testImplementation 'app.cash.turbine:turbine:_' + testImplementation Testing.robolectric + testImplementation project(path: ':common-test') +-} +\ No newline at end of file ++} +diff --git a/common/common-ui/src/main/AndroidManifest.xml b/common/common-ui/src/main/AndroidManifest.xml +index 3051093c4..69e22b019 100644 +--- a/common/common-ui/src/main/AndroidManifest.xml ++++ b/common/common-ui/src/main/AndroidManifest.xml +@@ -14,8 +14,7 @@ + ~ limitations under the License. + --> + +- ++ + + + +@@ -28,4 +27,4 @@ + android:resource="@array/preloaded_fonts" /> + + +- +\ No newline at end of file ++ +diff --git a/common/common-utils/build.gradle b/common/common-utils/build.gradle +index 85586cccb..3839b239e 100644 +--- a/common/common-utils/build.gradle ++++ b/common/common-utils/build.gradle +@@ -24,6 +24,7 @@ plugins { + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + + android { ++ namespace = "com.duckduckgo.app.global" + lintOptions { + baseline file("lint-baseline.xml") + } +diff --git a/common/common-utils/src/main/AndroidManifest.xml b/common/common-utils/src/main/AndroidManifest.xml +index 918e07788..6c9af1677 100644 +--- a/common/common-utils/src/main/AndroidManifest.xml ++++ b/common/common-utils/src/main/AndroidManifest.xml +@@ -15,8 +15,7 @@ + ~ limitations under the License. + --> + +- ++ + + + +- +\ No newline at end of file ++ +diff --git a/element-hiding/element-hiding-store/build.gradle b/element-hiding/element-hiding-store/build.gradle +index 136b0011a..d5907c9f4 100644 +--- a/element-hiding/element-hiding-store/build.gradle ++++ b/element-hiding/element-hiding-store/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.elementhiding.store" ++ + dependencies { + implementation project(path: ':common-utils') + implementation Kotlin.stdlib.jdk7 +@@ -54,4 +56,4 @@ dependencies { + testImplementation 'app.cash.turbine:turbine:_' + testImplementation Testing.robolectric + testImplementation project(path: ':common-test') +-} +\ No newline at end of file ++} +diff --git a/element-hiding/element-hiding-store/src/main/AndroidManifest.xml b/element-hiding/element-hiding-store/src/main/AndroidManifest.xml +index 58f99753e..8074ffc9f 100644 +--- a/element-hiding/element-hiding-store/src/main/AndroidManifest.xml ++++ b/element-hiding/element-hiding-store/src/main/AndroidManifest.xml +@@ -15,7 +15,4 @@ + ~ limitations under the License. + --> + +- +- +- +\ No newline at end of file ++ +diff --git a/fingerprint-protection/fingerprint-protection-store/build.gradle b/fingerprint-protection/fingerprint-protection-store/build.gradle +index 7d4c939e3..29749aa51 100644 +--- a/fingerprint-protection/fingerprint-protection-store/build.gradle ++++ b/fingerprint-protection/fingerprint-protection-store/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.fingerprintprotection.store" ++ + dependencies { + implementation project(path: ':common-utils') + implementation project(path: ':fingerprint-protection-api') +@@ -58,4 +60,4 @@ dependencies { + testImplementation 'app.cash.turbine:turbine:_' + testImplementation Testing.robolectric + testImplementation project(path: ':common-test') +-} +\ No newline at end of file ++} +diff --git a/fingerprint-protection/fingerprint-protection-store/src/main/AndroidManifest.xml b/fingerprint-protection/fingerprint-protection-store/src/main/AndroidManifest.xml +index 917eee29a..311bf3593 100644 +--- a/fingerprint-protection/fingerprint-protection-store/src/main/AndroidManifest.xml ++++ b/fingerprint-protection/fingerprint-protection-store/src/main/AndroidManifest.xml +@@ -15,7 +15,4 @@ + ~ limitations under the License. + --> + +- +- +- +\ No newline at end of file ++ +diff --git a/macos/macos-impl/build.gradle b/macos/macos-impl/build.gradle +index 63a9de7f6..f5c7b0f1d 100644 +--- a/macos/macos-impl/build.gradle ++++ b/macos/macos-impl/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.macos_impl" ++ + dependencies { + anvil project(path: ':anvil-compiler') + implementation project(path: ':anvil-annotations') +diff --git a/macos/macos-impl/src/main/AndroidManifest.xml b/macos/macos-impl/src/main/AndroidManifest.xml +index c54d4aa07..65859660d 100644 +--- a/macos/macos-impl/src/main/AndroidManifest.xml ++++ b/macos/macos-impl/src/main/AndroidManifest.xml +@@ -14,8 +14,7 @@ + ~ limitations under the License. + --> + +- ++ + + + + +- +\ No newline at end of file ++ +diff --git a/network-protection/network-protection-internal/build.gradle b/network-protection/network-protection-internal/build.gradle +index cacfd8d4f..2ae79ed78 100644 +--- a/network-protection/network-protection-internal/build.gradle ++++ b/network-protection/network-protection-internal/build.gradle +@@ -23,6 +23,7 @@ plugins { + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + + android { ++ namespace = "com.duckduckgo.networkprotection.internal" + lintOptions { + baseline file("lint-baseline.xml") + } +@@ -88,4 +89,4 @@ dependencies { + exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug" + } + testImplementation Testing.junit4 +-} +\ No newline at end of file ++} +diff --git a/network-protection/network-protection-internal/src/main/AndroidManifest.xml b/network-protection/network-protection-internal/src/main/AndroidManifest.xml +index 2864be38b..245555caf 100644 +--- a/network-protection/network-protection-internal/src/main/AndroidManifest.xml ++++ b/network-protection/network-protection-internal/src/main/AndroidManifest.xml +@@ -1,6 +1,5 @@ + +- ++ + + + + + +- +\ No newline at end of file ++ +diff --git a/privacy-config/privacy-config-internal/build.gradle b/privacy-config/privacy-config-internal/build.gradle +index 77133a6cf..a698d9350 100644 +--- a/privacy-config/privacy-config-internal/build.gradle ++++ b/privacy-config/privacy-config-internal/build.gradle +@@ -23,6 +23,7 @@ plugins { + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + + android { ++ namespace = "com.duckduckgo.privacy.config.internal" + anvil { + generateDaggerFactories = true // default is false + } +@@ -48,4 +49,4 @@ dependencies { + + // Dagger + implementation Google.dagger +-} +\ No newline at end of file ++} +diff --git a/privacy-config/privacy-config-internal/src/main/AndroidManifest.xml b/privacy-config/privacy-config-internal/src/main/AndroidManifest.xml +index 79e806000..ec94fcb12 100644 +--- a/privacy-config/privacy-config-internal/src/main/AndroidManifest.xml ++++ b/privacy-config/privacy-config-internal/src/main/AndroidManifest.xml +@@ -1,9 +1,8 @@ + +- ++ + + + + + +- +\ No newline at end of file ++ +diff --git a/privacy-dashboard/privacy-dashboard-impl/build.gradle b/privacy-dashboard/privacy-dashboard-impl/build.gradle +index fc809ba2b..eb7001ec1 100644 +--- a/privacy-dashboard/privacy-dashboard-impl/build.gradle ++++ b/privacy-dashboard/privacy-dashboard-impl/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.privacy.dashboard.impl" ++ + dependencies { + anvil project(':anvil-compiler') + implementation project(':anvil-annotations') +@@ -88,4 +90,4 @@ fulladleModuleConfig { + + tasks.register('androidTestsBuild') { + dependsOn 'assembleDebugAndroidTest' +-} +\ No newline at end of file ++} +diff --git a/privacy-dashboard/privacy-dashboard-impl/src/main/AndroidManifest.xml b/privacy-dashboard/privacy-dashboard-impl/src/main/AndroidManifest.xml +index 787089a36..8d387592a 100644 +--- a/privacy-dashboard/privacy-dashboard-impl/src/main/AndroidManifest.xml ++++ b/privacy-dashboard/privacy-dashboard-impl/src/main/AndroidManifest.xml +@@ -15,8 +15,7 @@ + ~ limitations under the License. + --> + +- ++ + + + +- +\ No newline at end of file ++ +diff --git a/runtime-checks/runtime-checks-store/build.gradle b/runtime-checks/runtime-checks-store/build.gradle +index 2d9ad2e90..94c342bd2 100644 +--- a/runtime-checks/runtime-checks-store/build.gradle ++++ b/runtime-checks/runtime-checks-store/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.runtimechecks.store" ++ + dependencies { + implementation project(path: ':common-utils') + implementation Kotlin.stdlib.jdk7 +@@ -54,4 +56,4 @@ dependencies { + testImplementation 'app.cash.turbine:turbine:_' + testImplementation Testing.robolectric + testImplementation project(path: ':common-test') +-} +\ No newline at end of file ++} +diff --git a/runtime-checks/runtime-checks-store/src/main/AndroidManifest.xml b/runtime-checks/runtime-checks-store/src/main/AndroidManifest.xml +index 0af574d93..75e2ad68e 100644 +--- a/runtime-checks/runtime-checks-store/src/main/AndroidManifest.xml ++++ b/runtime-checks/runtime-checks-store/src/main/AndroidManifest.xml +@@ -15,7 +15,4 @@ + ~ limitations under the License. + --> + +- +- +- +\ No newline at end of file ++ +diff --git a/subscriptions/subscriptions-impl/build.gradle b/subscriptions/subscriptions-impl/build.gradle +index 0bca5288a..0e9f42326 100644 +--- a/subscriptions/subscriptions-impl/build.gradle ++++ b/subscriptions/subscriptions-impl/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.subscriptions.impl" ++ + dependencies { + testImplementation 'junit:junit:4.13.1' + anvil project(path: ':anvil-compiler') +@@ -76,4 +78,4 @@ android { + includeAndroidResources = true + } + } +-} +\ No newline at end of file ++} +diff --git a/subscriptions/subscriptions-impl/src/main/AndroidManifest.xml b/subscriptions/subscriptions-impl/src/main/AndroidManifest.xml +index 17acd697d..735f972e5 100644 +--- a/subscriptions/subscriptions-impl/src/main/AndroidManifest.xml ++++ b/subscriptions/subscriptions-impl/src/main/AndroidManifest.xml +@@ -14,8 +14,7 @@ + ~ limitations under the License. + --> + +- ++ + + + +- +\ No newline at end of file ++ +diff --git a/sync/sync-impl/build.gradle b/sync/sync-impl/build.gradle +index 7168d7e18..52e0e6b22 100644 +--- a/sync/sync-impl/build.gradle ++++ b/sync/sync-impl/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.sync.impl" ++ + dependencies { + implementation project(path: ':di') + implementation project(path: ':common-utils') +diff --git a/sync/sync-impl/src/main/AndroidManifest.xml b/sync/sync-impl/src/main/AndroidManifest.xml +index 25c4b626f..ea2e8042c 100644 +--- a/sync/sync-impl/src/main/AndroidManifest.xml ++++ b/sync/sync-impl/src/main/AndroidManifest.xml +@@ -14,7 +14,7 @@ + ~ limitations under the License. + --> + +- + +@@ -78,4 +78,4 @@ + android:screenOrientation="portrait" + tools:replace="screenOrientation" /> + +- +\ No newline at end of file ++ +diff --git a/traces/traces-impl/build.gradle b/traces/traces-impl/build.gradle +index 2c5ab2d63..df95c58c2 100644 +--- a/traces/traces-impl/build.gradle ++++ b/traces/traces-impl/build.gradle +@@ -23,6 +23,7 @@ plugins { + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + + android { ++ namespace = "com.duckduckgo.app.traces" + anvil { + generateDaggerFactories = true // default is false + } +diff --git a/traces/traces-impl/src/main/AndroidManifest.xml b/traces/traces-impl/src/main/AndroidManifest.xml +index 1d6155ca4..ef5a9e403 100644 +--- a/traces/traces-impl/src/main/AndroidManifest.xml ++++ b/traces/traces-impl/src/main/AndroidManifest.xml +@@ -15,8 +15,7 @@ + ~ limitations under the License. + --> + +- ++ + + + + + +- +\ No newline at end of file ++ +diff --git a/windows/windows-impl/build.gradle b/windows/windows-impl/build.gradle +index 0fc212a9a..8ada81187 100644 +--- a/windows/windows-impl/build.gradle ++++ b/windows/windows-impl/build.gradle +@@ -22,6 +22,8 @@ plugins { + + apply from: "$rootProject.projectDir/gradle/android-library.gradle" + ++android.namespace = "com.duckduckgo.windows.impl" ++ + dependencies { + anvil project(':anvil-compiler') + implementation project(':anvil-annotations') +diff --git a/windows/windows-impl/src/main/AndroidManifest.xml b/windows/windows-impl/src/main/AndroidManifest.xml +index 1dbe65989..6e68259cb 100644 +--- a/windows/windows-impl/src/main/AndroidManifest.xml ++++ b/windows/windows-impl/src/main/AndroidManifest.xml +@@ -14,8 +14,7 @@ + ~ limitations under the License. + --> + +- ++ + + + +- +\ No newline at end of file ++ diff --git a/libraries/tools/gradle/regression-benchmarks/build.gradle.kts b/libraries/tools/gradle/regression-benchmarks/build.gradle.kts index d78ba208a06..6ff26a2bcbb 100644 --- a/libraries/tools/gradle/regression-benchmarks/build.gradle.kts +++ b/libraries/tools/gradle/regression-benchmarks/build.gradle.kts @@ -90,7 +90,7 @@ fun JavaExec.usesAndroidSdk() { addBenchmarkTask( taskName = "benchmarkRegressionDuckduckgo", script = "duckduckgo.benchmark.kts", - JavaLanguageVersion.of(11) + JavaLanguageVersion.of(17) ) { usesAndroidSdk() }