@@ -74,8 +74,6 @@ import com.android.build.gradle.internal.packaging.getDefaultDebugKeystoreSignin
7474import com.android.build.gradle.internal.profile.AnalyticsService
7575import com.android.build.gradle.internal.publishing.AarOrJarTypeToConsume
7676import com.android.build.gradle.internal.publishing.AndroidArtifacts
77- import com.android.build.gradle.internal.res.namespaced.AutoNamespacePreProcessTransform
78- import com.android.build.gradle.internal.res.namespaced.AutoNamespaceTransform
7977import com.android.build.gradle.internal.scope.InternalArtifactType
8078import com.android.build.gradle.internal.services.AndroidLocationsBuildService
8179import com.android.build.gradle.internal.services.ProjectServices
@@ -155,22 +153,14 @@ class DependencyConfigurator(
155153 }
156154
157155 fun configureGeneralTransforms (
158- namespacedAndroidResources : Boolean ,
159156 aarOrJarTypeToConsume : AarOrJarTypeToConsume
160157 ): DependencyConfigurator {
161158 val dependencies: DependencyHandler = project.dependencies
162159
163160 val projectOptions = projectServices.projectOptions
164161
165- // The aars/jars may need to be processed (e.g., jetified to AndroidX) before they can be
166- // used
167- val autoNamespaceDependencies =
168- namespacedAndroidResources && projectOptions[BooleanOption .CONVERT_NON_NAMESPACED_DEPENDENCIES ]
169- val jetifiedAarOutputType = if (autoNamespaceDependencies) {
170- AndroidArtifacts .ArtifactType .MAYBE_NON_NAMESPACED_PROCESSED_AAR
171- } else {
172- AndroidArtifacts .ArtifactType .PROCESSED_AAR
173- }
162+ val jetifiedAarOutputType = AndroidArtifacts .ArtifactType .PROCESSED_AAR
163+
174164 // Arguments passed to an ArtifactTransform must not be null
175165 val jetifierIgnoreList = projectOptions[StringOption .JETIFIER_IGNORE_LIST ] ? : " "
176166 if (projectOptions.get(BooleanOption .ENABLE_JETIFIER )) {
@@ -188,17 +178,10 @@ class DependencyConfigurator(
188178 ) { params ->
189179 params.ignoreListOption.setDisallowChanges(jetifierIgnoreList)
190180 }
191- } else if (autoNamespaceDependencies ) {
192- // Namespaced resources code path is not optimized. Identity transforms are removed
193- // otherwise .
181+ } else if (projectOptions[ BooleanOption . ENABLE_IDENTITY_TRANSFORMS_FOR_PROCESSED_ARTIFACTS ] ) {
182+ // These should not be needed in most scenarios now, but keeping the option for
183+ // backwards compatibility .
194184 registerIdentityTransformWhenJetifierIsDisabled(jetifiedAarOutputType)
195- } else {
196- // Still register the transform if/when dagger plugin is applied
197- // TODO(b/288221106): Dagger plugin depends on our internal implementation,
198- // we need to eliminate their dependency on this to be able to remove the following.
199- project.plugins.withId(" dagger.hilt.android.plugin" ) {
200- registerIdentityTransformWhenJetifierIsDisabled(jetifiedAarOutputType)
201- }
202185 }
203186
204187 registerTransform(
@@ -281,6 +264,9 @@ class DependencyConfigurator(
281264 spec.parameters.projectName.setDisallowChanges(project.name)
282265 spec.parameters.targetType.setDisallowChanges(transformTarget)
283266 spec.parameters.namespacedSharedLibSupport.setDisallowChanges(namespacedSharedLibSupport)
267+ spec.parameters.filterOutGlobalRules.setDisallowChanges(
268+ projectOptions[BooleanOption .R8_GLOBAL_OPTIONS_IN_CONSUMER_RULES_DISALLOWED ]
269+ )
284270 }
285271 }
286272 if (projectOptions[BooleanOption .PRECOMPILE_DEPENDENCIES_RESOURCES ]) {
@@ -353,37 +339,19 @@ class DependencyConfigurator(
353339 ExtractProGuardRulesTransform ::class .java,
354340 aarOrJarTypeToConsume.jar,
355341 AndroidArtifacts .ArtifactType .UNFILTERED_PROGUARD_RULES
356- )
342+ ) { params ->
343+ params.filterOutGlobalRules.set(
344+ projectServices.projectOptions.get(
345+ BooleanOption .R8_GLOBAL_OPTIONS_IN_CONSUMER_RULES_DISALLOWED
346+ )
347+ )
348+ }
357349 }
358350 registerTransform(
359351 LibrarySymbolTableTransform ::class .java,
360352 AndroidArtifacts .ArtifactType .EXPLODED_AAR ,
361353 AndroidArtifacts .ArtifactType .SYMBOL_LIST_WITH_PACKAGE_NAME
362354 )
363- if (autoNamespaceDependencies) {
364- registerTransform(
365- AutoNamespacePreProcessTransform ::class .java,
366- AndroidArtifacts .ArtifactType .MAYBE_NON_NAMESPACED_PROCESSED_AAR ,
367- AndroidArtifacts .ArtifactType .PREPROCESSED_AAR_FOR_AUTO_NAMESPACE
368- ) { params ->
369- projectServices.initializeAapt2Input(params.aapt2, task = null )
370- }
371- registerTransform(
372- AutoNamespacePreProcessTransform ::class .java,
373- AndroidArtifacts .ArtifactType .JAR ,
374- AndroidArtifacts .ArtifactType .PREPROCESSED_AAR_FOR_AUTO_NAMESPACE
375- ) { params ->
376- projectServices.initializeAapt2Input(params.aapt2, task = null )
377- }
378-
379- registerTransform(
380- AutoNamespaceTransform ::class .java,
381- AndroidArtifacts .ArtifactType .PREPROCESSED_AAR_FOR_AUTO_NAMESPACE ,
382- AndroidArtifacts .ArtifactType .PROCESSED_AAR
383- ) { params ->
384- projectServices.initializeAapt2Input(params.aapt2, task = null )
385- }
386- }
387355 // Transform to go from external jars to CLASSES and JAVA_RES artifacts. This returns the
388356 // same exact file but with different types, since a jar file can contain both.
389357 for (classesOrResources in arrayOf(
0 commit comments