Collect list of Android plugins from .flutter-plugins-dependencies (#57907)

This commit is contained in:
Igor Akkerman 2020-06-04 23:06:03 +02:00 committed by GitHub
parent 10ae8698b4
commit 253eb1cfbd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -372,17 +372,28 @@ class FlutterPlugin implements Plugin<Project> {
}
private Properties getPluginList() {
File pluginsFile = new File(project.projectDir.parentFile.parentFile, '.flutter-plugins')
Properties allPlugins = readPropertiesIfExist(pluginsFile)
Properties androidPlugins = new Properties()
allPlugins.each { name, path ->
if (doesSupportAndroidPlatform(path)) {
androidPlugins.setProperty(name, path)
}
// TODO(amirh): log an error if this plugin was specified to be an Android
// plugin according to the new schema, and was missing a build.gradle file.
// https://github.com/flutter/flutter/issues/40784
def flutterProjectRoot = project.projectDir.parentFile.parentFile
def pluginsFile = new File(flutterProjectRoot, '.flutter-plugins-dependencies')
if (!pluginsFile.exists()) {
return androidPlugins
}
def object = new JsonSlurper().parseText(pluginsFile.text)
assert object instanceof Map
assert object.plugins instanceof Map
assert object.plugins.android instanceof List
// Includes the Flutter plugins that support the Android platform.
object.plugins.android.each { androidPlugin ->
assert androidPlugin.name instanceof String
assert androidPlugin.path instanceof String
def pluginDirectory = new File(androidPlugin.path, 'android')
assert pluginDirectory.exists()
androidPlugins.setProperty(androidPlugin.name, androidPlugin.path)
}
return androidPlugins
}