updateAndroidManifest method

void updateAndroidManifest(
  1. String andConfiguration
)

Implementation

void updateAndroidManifest(String andConfiguration) async {
  // read the file
  final File androidManifestFile = File(_androidManifestFileName);
  final List<String> lines = await androidManifestFile.readAsLines();

  // iterate
  bool inActivity = false;
  bool inTargetActivity = false;
  bool inPreviousContent = false;
  List<String> newLines = [];
  for (int x = 0; x < lines.length; x++) {
    // get
    String line = lines[x];

    // delimiter
    if (line.contains(_delimiter)) {
      inPreviousContent = !inPreviousContent;
      continue;
    }

    // end of activity
    if (line.contains('</activity>')) {
      // add our content
      if (inTargetActivity) {
        newLines.addAll(andConfiguration.split('\n'));
      }

      // done
      inActivity = false;
    }

    // start of activity
    if (line.contains('<activity')) {
      inActivity = true;
    }
    if (inActivity && line.contains(_androidActivity)) {
      inTargetActivity = true;
    }

    // done
    if (inPreviousContent == false) {
      newLines.add(line);
    }
  }

  // update
  androidManifestFile.writeAsString(newLines.join('\n'));
  print('Android Manifest updated ($_androidManifestFileName)');
}