update loop icon

This commit is contained in:
hasinarak3@gmail.com 2026-01-27 16:34:15 +03:00
parent 21502c3681
commit 8112e30161

View file

@ -1,4 +1,4 @@
package mg.dot.feufaro.ui package mg.dot.feufaro.ui
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeIn
@ -14,6 +14,8 @@ import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
@ -69,6 +71,9 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.DpSize
@ -301,37 +306,49 @@ fun MidiControlPanel(
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
){ ){
Column(horizontalAlignment = Alignment.CenterHorizontally) { Column(horizontalAlignment = Alignment.CenterHorizontally) {
val isAtStart = loopState.first == -1L
val isWaitingForB = loopState.first != -1L && !loopState.third
val isLooping = loopState.third
Button( Button(
onClick = { onClick = {
if (loopState.first == -1L) { when {
mediaPlayer.setPointA() isAtStart -> mediaPlayer.setPointA()
} else if(!loopState.third) { isWaitingForB -> mediaPlayer.setPointB()
mediaPlayer.setPointB() isLooping -> {
mediaPlayer.clearLoop()
}
} }
}, },
colors = ButtonDefaults.buttonColors( colors = ButtonDefaults.buttonColors(
containerColor = if (loopState.third) Color.Green else MaterialTheme.colorScheme.secondary containerColor = when {
) (isWaitingForB || isLooping) -> Color.Red
) { else -> Color.LightGray
when {
loopState.first == -1L -> Text("A?")
!loopState.third -> Text("B?")
else -> Icon(
imageVector = Icons.Default.Loop,
contentDescription = "boucle"
)
}
}
}
Column(horizontalAlignment = Alignment.CenterHorizontally) {
if(loopState.first != -1L) {
IconButton(
onClick = {
mediaPlayer.clearLoop()
} }
) { ),
Icon(Icons.Default.Clear, contentDescription = "Actualiser", ) shape = RoundedCornerShape(5.dp) ,
} modifier = Modifier.padding(2.dp)
) {
Text(
text = "A",
color = if (isWaitingForB || isLooping) Color.White else Color.Black,
fontWeight = FontWeight.Bold,
fontSize = 18.sp
)
Icon(
imageVector = Icons.Default.Loop,
contentDescription = null,
tint = if (isLooping) Color.White else Color.Black,
modifier = Modifier.size(18.dp)
)
Text(
text = "B",
color = if (isLooping) Color.White else Color.Black,
fontWeight = FontWeight.Bold,
fontSize = 18.sp
)
} }
} }