Coverage Summary for Class: TimeSignatureViewKt (com.vsevolodganin.clicktrack.ui.piece)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| TimeSignatureViewKt |
0%
(0/1)
|
0%
(0/6)
|
0%
(0/12)
|
0%
(0/20)
|
0%
(0/495)
|
package com.vsevolodganin.clicktrack.ui.piece
import androidx.compose.material.Chip
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import com.vsevolodganin.clicktrack.model.TimeSignature
import org.jetbrains.compose.ui.tooling.preview.Preview
@Composable
fun TimeSignatureView(state: MutableState<TimeSignature>, modifier: Modifier = Modifier) {
TimeSignatureView(
value = state.value,
onValueChange = { state.value = it },
modifier = modifier,
)
}
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun TimeSignatureView(value: TimeSignature, onValueChange: (TimeSignature) -> Unit, modifier: Modifier = Modifier) {
var isEditDialogOpened by rememberSaveable { mutableStateOf(false) }
Chip(onClick = { isEditDialogOpened = !isEditDialogOpened }, modifier = modifier) {
Text(text = "${value.noteCount}/${value.noteValue}")
}
if (isEditDialogOpened) {
TimeSignatureEditDialog(
value = value,
onValueChange = onValueChange,
onDismissRequest = { isEditDialogOpened = false },
)
}
}
@Preview
@Composable
private fun Preview() {
TimeSignatureView(
state = remember { mutableStateOf(TimeSignature(4, 4)) },
)
}