| @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" | |
| ) | |
| } | |
| } | |
| } |