selectBestMatchingFile static method

String? selectBestMatchingFile(
  1. String resId,
  2. List<String> files,
  3. ResourceQualifiers qualifiers
)

选择最匹配的文件

Implementation

static String? selectBestMatchingFile(
  String resId,
  List<String> files,
  ResourceQualifiers qualifiers,
) {
  if (files.isEmpty) return null;

  final candidates = _generateCandidateQualifiers(qualifiers);
  print(
    'candidates: ${candidates.map((e) => '(${e.toString()})').join(' , ')}',
  );

  // 按优先级顺序查找匹配的文件
  for (final candidate in candidates) {
    final suffix = _qualifiersToFileSuffix(candidate);
    print('checking suffix: $suffix');

    for (final file in files) {
      final fileNameWithoutExt = file.split('.').first;
      final expectedFileName = '$resId$suffix';
      if (fileNameWithoutExt == expectedFileName) {
        print('matched file: $file');
        return file;
      }
    }
  }

  return null;
}