applyPlugin method

  1. @override
Future<void> applyPlugin(
  1. AndroidPlugin plugin
)
override

Implementation

@override
Future<void> applyPlugin(AndroidPlugin plugin) async {
  var result = await buildFile.search("apply plugin:");
  if (result.isEmpty) {
    return;
  }

  var insertedIndex = result.last.index;
  Map<int, String> linesIndex = await buildFile.linesIndexed();


  for (var element in linesIndex.values) {
    if (element.contains("apply") && element.contains(plugin.name)) {
      return;
    }
  }

  var content = "";
  linesIndex.forEach((key, value) {
    if (key == insertedIndex) {
      content += "${plugin.apply()}\n";
    }
    content += "$value\n";
  });
  buildFile.writeAsStringSync(content);
}