Validate first song key

This commit is contained in:
Hasinjato 2026-08-13 12:01:03 +03:00
parent df72c0b755
commit b935c7d8f0

View file

@ -2360,12 +2360,18 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
meta[subKey] = line.substring(2)
}
if ("c" == subKey) {
val tonality = line.uppercaseFirstMeta()
val validKeys = Transpose.keyToNumber.sortedByDescending { it.length }
val keyRegex = Regex("\\b(${validKeys.joinToString("|")})\\b", RegexOption.IGNORE_CASE)
val rawText = line.substringAfter("c:")
val matchedKey = keyRegex.find(rawText)?.value
val tonality = Transpose.keyToNumber.firstOrNull { it.equals(matchedKey, ignoreCase = true) }
if(tonality != null) {
meta["C"] = tonality
sharedScreenModel.setSongKey(tonality)
sharedScreenModel.setTransposeAsIf(tonality)
}
}
}
private fun String.uppercaseFirstMeta(): String {
if (this.length < 2) {