Skip to content

Commit

Permalink
Extract AGP-api dependent actions to separate classes.
Browse files Browse the repository at this point in the history
  • Loading branch information
dkostyrev committed Jun 29, 2023
1 parent 9c6f2d6 commit f88eafe
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.joom.paranoid.plugin

import com.android.build.api.artifact.MultipleArtifact
import com.android.build.api.variant.Variant
import org.gradle.api.tasks.TaskProvider

internal object AllClassesTransformRegisterAction {
fun register(variant: Variant, provider: TaskProvider<ParanoidTransformTask>) {
@Suppress("DEPRECATION")
variant.artifacts.use(provider)
.wiredWith(ParanoidTransformTask::inputDirectories, ParanoidTransformTask::outputDirectory)
.toTransform(MultipleArtifact.ALL_CLASSES_DIRS)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,12 @@
package com.joom.paranoid.plugin

import com.android.build.api.AndroidPluginVersion
import com.android.build.api.artifact.MultipleArtifact
import com.android.build.api.artifact.ScopedArtifact
import com.android.build.api.variant.ScopedArtifacts
import com.android.build.api.variant.Variant
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.JavaCompile
import java.io.File

Expand Down Expand Up @@ -132,9 +128,9 @@ class ParanoidPlugin : Plugin<Project> {
val androidComponentsExtension = project.androidComponents ?: error("Failed to get androidComponents extension")

if (androidComponentsExtension.pluginVersion >= SCOPED_ARTIFACTS_VERSION) {
registerTransformTaskWithScopedArtifacts(taskProvider)
ScopedArtifactsRegisterAction.register(this, taskProvider)
} else {
registerTransformTaskWithAllClassesTransform(taskProvider)
AllClassesTransformRegisterAction.register(this, taskProvider)
}

val runtimeClasspath = project.configurations.getByName("${name}RuntimeClasspath")
Expand All @@ -152,19 +148,6 @@ class ParanoidPlugin : Plugin<Project> {
}
}

private fun Variant.registerTransformTaskWithAllClassesTransform(provider: TaskProvider<ParanoidTransformTask>) {
@Suppress("DEPRECATION")
artifacts.use(provider)
.wiredWith(ParanoidTransformTask::inputDirectories, ParanoidTransformTask::outputDirectory)
.toTransform(MultipleArtifact.ALL_CLASSES_DIRS)
}

private fun Variant.registerTransformTaskWithScopedArtifacts(provider: TaskProvider<ParanoidTransformTask>) {
artifacts.forScope(ScopedArtifacts.Scope.PROJECT)
.use(provider)
.toTransform(ScopedArtifact.CLASSES, ParanoidTransformTask::inputClasses, ParanoidTransformTask::inputDirectories, ParanoidTransformTask::output)
}

private fun formatParanoidTaskName(variantName: String): String {
return "${ParanoidTransformTask.TASK_PREFIX}${variantName.replaceFirstChar { it.uppercase() }}"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.joom.paranoid.plugin

import com.android.build.api.artifact.ScopedArtifact
import com.android.build.api.variant.ScopedArtifacts
import com.android.build.api.variant.Variant
import org.gradle.api.tasks.TaskProvider

internal object ScopedArtifactsRegisterAction {
fun register(variant: Variant, provider: TaskProvider<ParanoidTransformTask>) {
variant.artifacts.forScope(ScopedArtifacts.Scope.PROJECT)
.use(provider)
.toTransform(ScopedArtifact.CLASSES, ParanoidTransformTask::inputClasses, ParanoidTransformTask::inputDirectories, ParanoidTransformTask::output)
}
}

0 comments on commit f88eafe

Please sign in to comment.