removePlugin method

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

Implementation

@override
Future<void> removePlugin(AndroidPlugin plugin) async {
  List<SearchResult> result = [];
  result = await buildFile.search("dependencies");
  if (result.isEmpty) {
    throw Exception("No dependencies tag into /android/build.gradle");
  }
  await listPlugins();
  var pluginIndex = -1;
  for (var element in _cache.entries) {
    if (element.value.name == plugin.name &&
        element.value.version.trim() == plugin.version.trim()) {
      pluginIndex = element.key;
      break;
    }
  }

  if (pluginIndex == -1) {
    printWarning("No Android Plugin Matched ");
    return;
  }

  Map<int, String> linesIndex = await buildFile.linesIndexed();

  String content = "";
  linesIndex.forEach((key, value) {
    if (key != pluginIndex) {
      content += "$value\n";
    }
  });

  buildFile.writeAsStringSync(content);
}