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,10 +2360,16 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
meta[subKey] = line.substring(2) meta[subKey] = line.substring(2)
} }
if ("c" == subKey) { if ("c" == subKey) {
val tonality = line.uppercaseFirstMeta() val validKeys = Transpose.keyToNumber.sortedByDescending { it.length }
meta["C"] = tonality val keyRegex = Regex("\\b(${validKeys.joinToString("|")})\\b", RegexOption.IGNORE_CASE)
sharedScreenModel.setSongKey(tonality) val rawText = line.substringAfter("c:")
sharedScreenModel.setTransposeAsIf(tonality) 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)
}
} }
} }