in analyzer/src/main/java/com/android/tools/sizereduction/analyzer/model/GroovyGradleParser.java [379:424]
private void checkMethodCall(
String statement, String parent, Map<String, String> namedArguments) {
if (statement.equals("apply") && parent == null && namedArguments.containsKey("plugin")) {
String plugin = namedArguments.get("plugin");
switch (plugin) {
case "com.android.application":
gradleContextBuilder.setPluginType(GradleContext.PluginType.APPLICATION);
break;
case "com.android.dynamic-feature":
gradleContextBuilder.setPluginType(GradleContext.PluginType.DYNAMIC_FEATURE);
break;
case "com.android.feature":
gradleContextBuilder.setPluginType(GradleContext.PluginType.FEATURE);
break;
default:
// there are other plugins that can be applied, ignore them.
break;
}
} else if (parent != null
&& parent.equals("dependencies")
&& (statement.equals("implementation")
|| statement.equals("api")
|| statement.equals("compile"))) {
String group = "";
String name = "";
String version = "";
for (Map.Entry<String, String> entry : namedArguments.entrySet()) {
switch (entry.getKey()) {
case "group":
group = entry.getValue();
break;
case "name":
name = entry.getValue();
break;
case "version":
version = entry.getValue();
break;
default:
break;
}
}
if (!group.isEmpty() && !name.isEmpty() && !version.isEmpty()) {
addDependencyToGradleContext(group, name, version);
}
}
}