1
1
package com.likethesalad.stem
2
2
3
- import com.android.build.api.AndroidPluginVersion
4
- import com.android.build.api.variant.AndroidComponentsExtension
5
3
import com.likethesalad.android.templates.common.plugins.BaseTemplatesProcessorPlugin
6
4
import com.likethesalad.stem.di.AppInjector
7
5
import com.likethesalad.stem.locator.listener.TypeLocatorCreationListener
8
6
import com.likethesalad.stem.modules.common.helpers.dirs.VariantBuildResolvedDir.Companion.getBuildRelativeResolvedDir
9
7
import com.likethesalad.stem.providers.AndroidExtensionProvider
10
8
import com.likethesalad.stem.providers.LocatorExtensionProvider
9
+ import com.likethesalad.stem.providers.PostConfigurationProvider
11
10
import com.likethesalad.stem.providers.ProjectDirsProvider
12
11
import com.likethesalad.stem.providers.TaskContainerProvider
13
12
import com.likethesalad.stem.providers.TaskProvider
14
13
import com.likethesalad.stem.utils.PlaceholderTasksCreator
15
14
import com.likethesalad.tools.android.plugin.data.AndroidExtension
16
15
import com.likethesalad.tools.resource.locator.android.extension.AndroidResourceLocatorExtension
16
+ import org.gradle.api.Action
17
17
import org.gradle.api.Project
18
18
import org.gradle.api.Task
19
19
import org.gradle.api.logging.Logger
@@ -22,7 +22,7 @@ import java.io.File
22
22
23
23
@Suppress(" UnstableApiUsage" )
24
24
class ResolvePlaceholdersPlugin : BaseTemplatesProcessorPlugin (), AndroidExtensionProvider, ProjectDirsProvider,
25
- TaskProvider , TaskContainerProvider , LocatorExtensionProvider {
25
+ TaskProvider , TaskContainerProvider , LocatorExtensionProvider , PostConfigurationProvider {
26
26
27
27
private lateinit var project: Project
28
28
private lateinit var androidExtension: AndroidExtension
@@ -52,23 +52,16 @@ class ResolvePlaceholdersPlugin : BaseTemplatesProcessorPlugin(), AndroidExtensi
52
52
templateResourcesEntryPointFactory.create(commonSourceConfigurationCreator),
53
53
creationListener
54
54
)
55
- validateAgp73AddingSrcDirs(project)
55
+
56
+ addResolvedResDirs()
56
57
}
57
58
58
- private fun validateAgp73AddingSrcDirs (project : Project ) {
59
- try {
60
- val androidComponentsExtension = project.extensions.getByType(AndroidComponentsExtension ::class .java)
61
- if (androidComponentsExtension.pluginVersion >= AndroidPluginVersion (7 , 3 )) {
62
- androidComponentsExtension.onVariants {
63
- val variantName = it.name
64
- androidExtension.addVariantSrcDir(
65
- variantName,
66
- project.layout.buildDirectory.dir(getBuildRelativeResolvedDir(variantName))
67
- )
68
- }
69
- }
70
- } catch (ignored: NoClassDefFoundError ) {
71
- // When AGP < 7
59
+ private fun addResolvedResDirs () {
60
+ androidTools.onVariant {
61
+ androidExtension.addVariantSrcDir(
62
+ it.getVariantName(),
63
+ project.layout.buildDirectory.dir(getBuildRelativeResolvedDir(it.getVariantName()))
64
+ )
72
65
}
73
66
}
74
67
@@ -108,4 +101,8 @@ class ResolvePlaceholdersPlugin : BaseTemplatesProcessorPlugin(), AndroidExtensi
108
101
override fun getLocatorExtension (): AndroidResourceLocatorExtension {
109
102
return stringsLocatorExtension
110
103
}
104
+
105
+ override fun executeAfterEvaluate (action : Action <in Project >) {
106
+ project.afterEvaluate(action)
107
+ }
111
108
}
0 commit comments