Compare commits
2 commits
981e22e191
...
8f3ab1ae80
| Author | SHA1 | Date | |
|---|---|---|---|
| 8f3ab1ae80 | |||
| e60acce0c8 |
2 changed files with 33 additions and 3 deletions
|
|
@ -1877,6 +1877,35 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
|
|||
var anchorNote = ' '
|
||||
lineRepeated.toCharArray().forEach {
|
||||
if (it == '§') {
|
||||
val rawSplit = splitBlocks.removeAt(0)
|
||||
val anchorSuffix = anchor.replace(Regex("^[drmfslt]"), "")
|
||||
val processedSplit = rawSplit.replace(Regex("\\{([^\\}]+)\\}")) { match ->
|
||||
val innerContent = match.groupValues[1]
|
||||
val updatedInner = innerContent.replace(Regex("([drmfsltDRFSTz])([,']*)")) { noteMatch ->
|
||||
val n = noteMatch.groupValues[1]
|
||||
val oct = noteMatch.groupValues[2]
|
||||
var res = n
|
||||
res += anchorSuffix
|
||||
if (oct.isEmpty()) {
|
||||
val noteChar = n[0]
|
||||
if (
|
||||
(anchorNote == 'r' && noteChar in listOf('d', 'D'))
|
||||
|| (anchorNote == 'm' && noteChar in listOf('d', 'D', 'r', 'R'))
|
||||
|| (anchorNote == 'f' && noteChar in listOf('d', 'D', 'r', 'R', 'm', 'M'))
|
||||
|| (anchorNote == 's' && noteChar !in listOf('s', 'S', 'l', 'L', 't', 'T'))
|
||||
|| (anchorNote == 'l' && noteChar !in listOf('l', 'L', 't', 'T'))
|
||||
|| (anchorNote == 't' && noteChar !in listOf('t', 'T'))
|
||||
) {
|
||||
res += '\''
|
||||
}
|
||||
} else {
|
||||
res += oct
|
||||
}
|
||||
res.replace(",'", "").replace("',", "").replace(",'", "").replace("',", "")
|
||||
}
|
||||
"{$updatedInner}"
|
||||
}
|
||||
splitBlocks.add(processedSplit)
|
||||
noteChar2 += "§"
|
||||
return@forEach
|
||||
}
|
||||
|
|
|
|||
|
|
@ -333,7 +333,7 @@ fun SimpleDrawerContent(
|
|||
contentTitle = di?.contentTitle ?: "chant introuvable",
|
||||
selected = di != null && di.path == activePath,
|
||||
enabled = di != null,
|
||||
stz = song.entry.stanzas,
|
||||
stzS = song.entry.stanzas.toSet(),
|
||||
onClick = {
|
||||
if (di != null) {
|
||||
scope.launch {
|
||||
|
|
@ -664,10 +664,11 @@ fun DrawerPlaylistSongRow(
|
|||
contentTitle: String,
|
||||
selected: Boolean,
|
||||
enabled: Boolean,
|
||||
stz: List<Int>,
|
||||
stzS: Set<Int>,
|
||||
onClick: () -> Unit,
|
||||
) {
|
||||
val verses = if(stz.isEmpty()) "" else ": ${stz.joinToString(", ")}"
|
||||
val stz = summarizeVerses(stzS)
|
||||
val verses = if(stzS.isEmpty()) "" else ": ${stz}"
|
||||
NavigationDrawerItem(
|
||||
icon = {
|
||||
Text("♪", fontSize = 20.sp)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue