fun getRandomResourceFromQualifiers()

in code/codegen/src/main/kotlin/com/android/gradle/replicator/resgen/util/PregenFileSelector.kt [45:66]


fun getRandomResourceFromQualifiers(random: Random, type: FileTypes, resourceQualifiers: List<String>): String? {
    val qualifierPrefixes = resourceQualifiers.filter(String::isNotEmpty)

    // Cache is faster if it exists
    val allFiles =
        if (fileSizeCache[type] == null) listResourceFiles(getFolderFromType(type))
        else fileSizeCache[type]!!.map { it.name }

    if (allFiles.isEmpty()) {
        println("e: no pre-generated $type file found")
        return null
    }

    val filteredFiles = allFiles.filter {
        qualifierPrefixes.any { prefix ->
            it.split("/").last().startsWith(prefix)
        }
    }

    // If specific file does not exist, get generic one
    return if (filteredFiles.isEmpty()) allFiles.sorted().random(random) else filteredFiles.sorted().random(random)
}