updateManifestPackage method

XmlDocument updateManifestPackage(
  1. XmlDocument doc
)

Implementation

XmlDocument updateManifestPackage(XmlDocument doc) {
  if (newPackage.isEmpty) {
    return doc;
  }
  final elements = doc.findAllElements('manifest').toList();
  if (elements.isEmpty) {
    return doc;
  }
  final targetKeyString = "package";
  XmlElement app = elements.first;
  String androidLabel = app.getAttribute(targetKeyString) ?? '';
  if (androidLabel.startsWith('@')) {
    final list = androidLabel.split("/");
    final valueStringsTargetKey = list.last;
    final allFiles = getValueDirFile(names: ['string', 'strings'], extensions: ['xml']);
    for (File f in allFiles) {
      final valueDoc = XmlDocument.parse(f.readAsStringSync());
      setDocStringValue(
        doc: doc,
        name: 'string',
        attributeName: 'name',
        targetKey: valueStringsTargetKey,
        targetValue: newPackage,
      );
      f.writeAsStringSync(valueDoc.toXmlString());
    }
  } else {
    app.setAttribute(targetKeyString, newPackage);
  }
  return doc;
}