@Composable
private fun LedCounterDisplay(
style: LedMatrixStyle = LedMatrixStyle()
) {
var number by remember { mutableStateOf(0) }
var started by remember { mutableStateOf(false) }
LaunchedEffect(started) {
while (started) {
number += 1
if (number >= 1000) {
number = 0
}
delay(1000)
}
}
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.Center
) {
LedMatrixDisplay(number = number.div(100), style = style)
Spacer(modifier = Modifier.width(8.dp))
LedMatrixDisplay(number = number.mod(100).div(10), style = style)
Spacer(modifier = Modifier.width(8.dp))
LedMatrixDisplay(number = number % 10, style = style)
}
Row(
modifier = Modifier
.fillMaxWidth()
.padding(top = 8.dp),
horizontalArrangement = Arrangement.Center
) {
Button(
onClick = { started = !started },
modifier = Modifier.padding(8.dp)
) {
Text(
if (started) "Stop" else "Start"
)
}
Button(
onClick = { number = (0..999).random() },
modifier = Modifier.padding(8.dp)
) {
Text(
"Randomize"
)
}
}
}