From 403bb383b5caa23bbb14f4e59e2727ae70ed2283 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 29 Jul 2021 15:24:31 +0530 Subject: Upgrade to AGP 7.0.0 (#1474) --- app/proguard-rules-missing-classes.pro | 139 ++++++++++++++++++++++++++++ autofill-parser/build.gradle.kts | 8 +- buildSrc/build.gradle.kts | 4 +- buildSrc/src/main/java/BaseProjectConfig.kt | 28 +++--- buildSrc/src/main/java/SlimTests.kt | 12 +-- gradle/libs.versions.toml | 12 --- 6 files changed, 165 insertions(+), 38 deletions(-) create mode 100644 app/proguard-rules-missing-classes.pro diff --git a/app/proguard-rules-missing-classes.pro b/app/proguard-rules-missing-classes.pro new file mode 100644 index 00000000..859524ac --- /dev/null +++ b/app/proguard-rules-missing-classes.pro @@ -0,0 +1,139 @@ +# This is generated automatically by the Android Gradle plugin. +-dontwarn com.google.errorprone.annotations.Immutable +-dontwarn javax.naming.Binding +-dontwarn javax.naming.NamingEnumeration +-dontwarn javax.naming.NamingException +-dontwarn javax.naming.directory.Attribute +-dontwarn javax.naming.directory.Attributes +-dontwarn javax.naming.directory.DirContext +-dontwarn javax.naming.directory.InitialDirContext +-dontwarn javax.naming.directory.SearchControls +-dontwarn javax.naming.directory.SearchResult +-dontwarn javax.security.auth.login.LoginContext +-dontwarn org.bouncycastle.asn1.bsi.BSIObjectIdentifiers +-dontwarn org.bouncycastle.asn1.cmp.CMPCertificate +-dontwarn org.bouncycastle.asn1.cmp.CMPObjectIdentifiers +-dontwarn org.bouncycastle.asn1.cmp.CertConfirmContent +-dontwarn org.bouncycastle.asn1.cmp.CertStatus +-dontwarn org.bouncycastle.asn1.cmp.InfoTypeAndValue +-dontwarn org.bouncycastle.asn1.cmp.PBMParameter +-dontwarn org.bouncycastle.asn1.cmp.PKIBody +-dontwarn org.bouncycastle.asn1.cmp.PKIFailureInfo +-dontwarn org.bouncycastle.asn1.cmp.PKIFreeText +-dontwarn org.bouncycastle.asn1.cmp.PKIHeader +-dontwarn org.bouncycastle.asn1.cmp.PKIHeaderBuilder +-dontwarn org.bouncycastle.asn1.cmp.PKIMessage +-dontwarn org.bouncycastle.asn1.cmp.PKIStatusInfo +-dontwarn org.bouncycastle.asn1.cmp.RevDetails +-dontwarn org.bouncycastle.asn1.cms.Attribute +-dontwarn org.bouncycastle.asn1.cms.AttributeTable +-dontwarn org.bouncycastle.asn1.cms.Attributes +-dontwarn org.bouncycastle.asn1.cms.AuthEnvelopedData +-dontwarn org.bouncycastle.asn1.cms.AuthenticatedData +-dontwarn org.bouncycastle.asn1.cms.AuthenticatedDataParser +-dontwarn org.bouncycastle.asn1.cms.CMSAlgorithmProtection +-dontwarn org.bouncycastle.asn1.cms.CMSAttributes +-dontwarn org.bouncycastle.asn1.cms.CMSObjectIdentifiers +-dontwarn org.bouncycastle.asn1.cms.CompressedData +-dontwarn org.bouncycastle.asn1.cms.CompressedDataParser +-dontwarn org.bouncycastle.asn1.cms.ContentInfo +-dontwarn org.bouncycastle.asn1.cms.ContentInfoParser +-dontwarn org.bouncycastle.asn1.cms.DigestedData +-dontwarn org.bouncycastle.asn1.cms.EncryptedContentInfo +-dontwarn org.bouncycastle.asn1.cms.EncryptedContentInfoParser +-dontwarn org.bouncycastle.asn1.cms.EncryptedData +-dontwarn org.bouncycastle.asn1.cms.EnvelopedData +-dontwarn org.bouncycastle.asn1.cms.EnvelopedDataParser +-dontwarn org.bouncycastle.asn1.cms.Evidence +-dontwarn org.bouncycastle.asn1.cms.GenericHybridParameters +-dontwarn org.bouncycastle.asn1.cms.IssuerAndSerialNumber +-dontwarn org.bouncycastle.asn1.cms.KEKIdentifier +-dontwarn org.bouncycastle.asn1.cms.KEKRecipientInfo +-dontwarn org.bouncycastle.asn1.cms.KeyAgreeRecipientIdentifier +-dontwarn org.bouncycastle.asn1.cms.KeyAgreeRecipientInfo +-dontwarn org.bouncycastle.asn1.cms.KeyTransRecipientInfo +-dontwarn org.bouncycastle.asn1.cms.MetaData +-dontwarn org.bouncycastle.asn1.cms.OriginatorIdentifierOrKey +-dontwarn org.bouncycastle.asn1.cms.OriginatorInfo +-dontwarn org.bouncycastle.asn1.cms.OriginatorPublicKey +-dontwarn org.bouncycastle.asn1.cms.OtherKeyAttribute +-dontwarn org.bouncycastle.asn1.cms.OtherRevocationInfoFormat +-dontwarn org.bouncycastle.asn1.cms.PasswordRecipientInfo +-dontwarn org.bouncycastle.asn1.cms.RecipientEncryptedKey +-dontwarn org.bouncycastle.asn1.cms.RecipientIdentifier +-dontwarn org.bouncycastle.asn1.cms.RecipientInfo +-dontwarn org.bouncycastle.asn1.cms.RecipientKeyIdentifier +-dontwarn org.bouncycastle.asn1.cms.RsaKemParameters +-dontwarn org.bouncycastle.asn1.cms.SignedData +-dontwarn org.bouncycastle.asn1.cms.SignedDataParser +-dontwarn org.bouncycastle.asn1.cms.SignerIdentifier +-dontwarn org.bouncycastle.asn1.cms.SignerInfo +-dontwarn org.bouncycastle.asn1.cms.Time +-dontwarn org.bouncycastle.asn1.cms.TimeStampAndCRL +-dontwarn org.bouncycastle.asn1.cms.TimeStampTokenEvidence +-dontwarn org.bouncycastle.asn1.cms.TimeStampedData +-dontwarn org.bouncycastle.asn1.cms.TimeStampedDataParser +-dontwarn org.bouncycastle.asn1.cms.ecc.ECCCMSSharedInfo +-dontwarn org.bouncycastle.asn1.cms.ecc.MQVuserKeyingMaterial +-dontwarn org.bouncycastle.asn1.crmf.AttributeTypeAndValue +-dontwarn org.bouncycastle.asn1.crmf.CRMFObjectIdentifiers +-dontwarn org.bouncycastle.asn1.crmf.CertReqMsg +-dontwarn org.bouncycastle.asn1.crmf.CertRequest +-dontwarn org.bouncycastle.asn1.crmf.CertTemplate +-dontwarn org.bouncycastle.asn1.crmf.CertTemplateBuilder +-dontwarn org.bouncycastle.asn1.crmf.Controls +-dontwarn org.bouncycastle.asn1.crmf.EncKeyWithID +-dontwarn org.bouncycastle.asn1.crmf.EncryptedKey +-dontwarn org.bouncycastle.asn1.crmf.EncryptedValue +-dontwarn org.bouncycastle.asn1.crmf.OptionalValidity +-dontwarn org.bouncycastle.asn1.crmf.PKIArchiveOptions +-dontwarn org.bouncycastle.asn1.crmf.PKMACValue +-dontwarn org.bouncycastle.asn1.crmf.POPOPrivKey +-dontwarn org.bouncycastle.asn1.crmf.POPOSigningKey +-dontwarn org.bouncycastle.asn1.crmf.POPOSigningKeyInput +-dontwarn org.bouncycastle.asn1.crmf.ProofOfPossession +-dontwarn org.bouncycastle.asn1.crmf.SubsequentMessage +-dontwarn org.bouncycastle.asn1.dvcs.CertEtcToken +-dontwarn org.bouncycastle.asn1.dvcs.DVCSObjectIdentifiers +-dontwarn org.bouncycastle.asn1.dvcs.DVCSRequest +-dontwarn org.bouncycastle.asn1.dvcs.DVCSRequestInformation +-dontwarn org.bouncycastle.asn1.dvcs.DVCSRequestInformationBuilder +-dontwarn org.bouncycastle.asn1.dvcs.DVCSResponse +-dontwarn org.bouncycastle.asn1.dvcs.DVCSTime +-dontwarn org.bouncycastle.asn1.dvcs.Data +-dontwarn org.bouncycastle.asn1.dvcs.ServiceType +-dontwarn org.bouncycastle.asn1.dvcs.TargetEtcChain +-dontwarn org.bouncycastle.asn1.eac.CVCertificate +-dontwarn org.bouncycastle.asn1.eac.CVCertificateRequest +-dontwarn org.bouncycastle.asn1.eac.CertificateBody +-dontwarn org.bouncycastle.asn1.eac.CertificateHolderAuthorization +-dontwarn org.bouncycastle.asn1.eac.CertificateHolderReference +-dontwarn org.bouncycastle.asn1.eac.CertificationAuthorityReference +-dontwarn org.bouncycastle.asn1.eac.EACObjectIdentifiers +-dontwarn org.bouncycastle.asn1.eac.ECDSAPublicKey +-dontwarn org.bouncycastle.asn1.eac.PackedDate +-dontwarn org.bouncycastle.asn1.eac.PublicKeyDataObject +-dontwarn org.bouncycastle.asn1.eac.RSAPublicKey +-dontwarn org.bouncycastle.asn1.ess.ESSCertID +-dontwarn org.bouncycastle.asn1.ess.ESSCertIDv2 +-dontwarn org.bouncycastle.asn1.ess.SigningCertificate +-dontwarn org.bouncycastle.asn1.ess.SigningCertificateV2 +-dontwarn org.bouncycastle.asn1.est.AttrOrOID +-dontwarn org.bouncycastle.asn1.est.CsrAttrs +-dontwarn org.bouncycastle.asn1.tsp.Accuracy +-dontwarn org.bouncycastle.asn1.tsp.MessageImprint +-dontwarn org.bouncycastle.asn1.tsp.PartialHashtree +-dontwarn org.bouncycastle.asn1.tsp.TSTInfo +-dontwarn org.bouncycastle.asn1.tsp.TimeStampReq +-dontwarn org.bouncycastle.asn1.tsp.TimeStampResp +-dontwarn org.ietf.jgss.GSSContext +-dontwarn org.ietf.jgss.GSSCredential +-dontwarn org.ietf.jgss.GSSException +-dontwarn org.ietf.jgss.GSSManager +-dontwarn org.ietf.jgss.GSSName +-dontwarn org.ietf.jgss.MessageProp +-dontwarn org.ietf.jgss.Oid +-dontwarn org.slf4j.impl.StaticLoggerBinder +-dontwarn org.slf4j.impl.StaticMDCBinder +-dontwarn org.slf4j.impl.StaticMarkerBinder +-dontwarn sun.security.x509.X509Key diff --git a/autofill-parser/build.gradle.kts b/autofill-parser/build.gradle.kts index e1550b9d..f22081f3 100644 --- a/autofill-parser/build.gradle.kts +++ b/autofill-parser/build.gradle.kts @@ -10,13 +10,7 @@ plugins { `aps-plugin` } -android { - defaultConfig { - versionCode = 2 - versionName = "2.0" - consumerProguardFiles("consumer-rules.pro") - } -} +android { defaultConfig { consumerProguardFiles("consumer-rules.pro") } } dependencies { implementation(libs.androidx.annotation) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 07c89e3f..2239861b 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -41,9 +41,9 @@ gradlePlugin { } dependencies { - implementation("com.android.tools.build:gradle:4.2.2") + implementation("com.android.tools.build:gradle:7.0.0") implementation("com.diffplug.spotless:spotless-plugin-gradle:5.14.2") - implementation("com.google.dagger:hilt-android-gradle-plugin:2.38") + implementation("com.google.dagger:hilt-android-gradle-plugin:2.38.1") implementation("com.squareup.okhttp3:okhttp:4.9.0") implementation("com.vanniktech:gradle-maven-publish-plugin:0.17.0") implementation("com.vdurmont:semver4j:3.1.0") diff --git a/buildSrc/src/main/java/BaseProjectConfig.kt b/buildSrc/src/main/java/BaseProjectConfig.kt index e4dfa7e4..f3a33713 100644 --- a/buildSrc/src/main/java/BaseProjectConfig.kt +++ b/buildSrc/src/main/java/BaseProjectConfig.kt @@ -81,16 +81,22 @@ internal fun BaseAppModuleExtension.configureAndroidApplicationOptions(project: buildConfig = true } - flavorDimensions(FlavorDimensions.FREE) + flavorDimensions.add(FlavorDimensions.FREE) productFlavors { - create(ProductFlavors.FREE) {} - create(ProductFlavors.NON_FREE) {} + register(ProductFlavors.FREE) {} + register(ProductFlavors.NON_FREE) {} } buildTypes { named(BuildType.RELEASE.name) { isMinifyEnabled = !minifySwitch.isPresent - setProguardFiles(listOf("proguard-android-optimize.txt", "proguard-rules.pro")) + setProguardFiles( + listOf( + "proguard-android-optimize.txt", + "proguard-rules.pro", + "proguard-rules-missing-classes.pro", + ) + ) buildConfigField("boolean", "ENABLE_DEBUG_FEATURES", "${project.isSnapshot()}") } named(BuildType.DEBUG.name) { @@ -105,11 +111,11 @@ internal fun BaseAppModuleExtension.configureAndroidApplicationOptions(project: /** Apply baseline configurations for all Android projects (Application and Library). */ @Suppress("UnstableApiUsage") internal fun TestedExtension.configureCommonAndroidOptions() { - compileSdkVersion(30) + setCompileSdkVersion(30) defaultConfig { - minSdkVersion(23) - targetSdkVersion(29) + minSdk = 23 + targetSdk = 29 } sourceSets { @@ -118,10 +124,10 @@ internal fun TestedExtension.configureCommonAndroidOptions() { } packagingOptions { - exclude("**/*.version") - exclude("**/*.txt") - exclude("**/*.kotlin_module") - exclude("**/plugin.properties") + resources.excludes.add("**/*.version") + resources.excludes.add("**/*.txt") + resources.excludes.add("**/*.kotlin_module") + resources.excludes.add("**/plugin.properties") } compileOptions { diff --git a/buildSrc/src/main/java/SlimTests.kt b/buildSrc/src/main/java/SlimTests.kt index 65e9c618..e06c7c8c 100644 --- a/buildSrc/src/main/java/SlimTests.kt +++ b/buildSrc/src/main/java/SlimTests.kt @@ -3,8 +3,8 @@ * SPDX-License-Identifier: GPL-3.0-only */ -import com.android.build.api.extension.ApplicationAndroidComponentsExtension -import com.android.build.api.extension.LibraryAndroidComponentsExtension +import com.android.build.api.variant.ApplicationAndroidComponentsExtension +import com.android.build.api.variant.LibraryAndroidComponentsExtension import org.gradle.api.Project import org.gradle.kotlin.dsl.findByType import org.gradle.language.nativeplatform.internal.BuildType @@ -21,15 +21,15 @@ internal fun Project.configureSlimTests() { if (providers.gradleProperty(SLIM_TESTS_PROPERTY).forUseAtConfigurationTime().isPresent) { // disable unit test tasks on the release build type for Android Library projects extensions.findByType()?.run { - beforeUnitTests(selector().withBuildType(BuildType.RELEASE.name)) { it.enabled = false } + beforeVariants(selector().withBuildType(BuildType.RELEASE.name)) { it.enableUnitTest = false } } // disable unit test tasks on the release build type and free flavor for Android Application // projects. extensions.findByType()?.run { - beforeUnitTests(selector().withBuildType(BuildType.RELEASE.name)) { it.enabled = false } - beforeUnitTests(selector().withFlavor(FlavorDimensions.FREE to ProductFlavors.NON_FREE)) { - it.enabled = false + beforeVariants(selector().withBuildType(BuildType.RELEASE.name)) { it.enableUnitTest = false } + beforeVariants(selector().withFlavor(FlavorDimensions.FREE to ProductFlavors.NON_FREE)) { + it.enableUnitTest = false } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2ee61a64..fafa15aa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,18 +10,6 @@ kotlin = "1.5.21" lifecycle = "2.4.0-alpha02" [libraries] -# buildSrc dependencies -androidGradlePlugin = "com.android.tools.build:gradle:4.2.2" -binaryCompatibilityValidator = "org.jetbrains.kotlinx:binary-compatibility-validator:0.6.0" -dokkaPlugin = "org.jetbrains.dokka:dokka-gradle-plugin:1.5.0" -downloadTaskPlugin = "de.undercouch:gradle-download-task:4.1.2" -hiltGradlePlugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" } -kotlinGradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -mavenPublishPlugin = "com.vanniktech:gradle-maven-publish-plugin:0.17.0" -okhttp = "com.squareup.okhttp3:okhttp:4.9.0" -semver4j = "com.vdurmont:semver4j:3.1.0" -spotlessGradlePlugin = "com.diffplug.spotless:spotless-plugin-gradle:5.14.2" - # Kotlin dependencies kotlin-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } -- cgit v1.2.3