updateManifestAppName method

XmlDocument updateManifestAppName(
  1. XmlDocument doc
)

Implementation

XmlDocument updateManifestAppName(XmlDocument doc) {
  final elements = doc.findAllElements('application').toList();
  if (elements.isEmpty) {
    return doc;
  }
  final targetKeyString = "android:label";
  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: valueDoc,
        name: 'string',
        attributeName: 'name',
        targetKey: valueStringsTargetKey,
        targetValue: newAppName,
        autoFill: true,
      );
      f.writeAsStringSync(valueDoc.toXmlString(pretty: true));
    }
  } else {
    app.setAttribute(targetKeyString, newAppName);
  }
  return doc;
}