getFeatures method

List<Map<String, dynamic>> getFeatures()

Gets the list of features currently in AndroidManifest.xml.

Implementation

List<Map<String, dynamic>> getFeatures() {
  final manifestFile = File(_manifestPath);

  if (!manifestFile.existsSync()) {
    return [];
  }

  try {
    final content = manifestFile.readAsStringSync();
    final document = XmlDocument.parse(content);

    final manifest = document.rootElement;

    final features = <Map<String, dynamic>>[];
    for (final feature in manifest.findAllElements('uses-feature')) {
      final nameAttr = _androidAttribute(feature, 'name');
      final requiredAttr = _androidAttribute(feature, 'required');

      if (nameAttr != null) {
        features.add({
          'name': nameAttr,
          'required': requiredAttr?.toLowerCase() == 'true',
        });
      }
    }

    return features;
  } catch (_) {
    return [];
  }
}