fun ControlDashboard()

in WearSpeakerSample/wear/src/main/java/com/example/android/wearable/speaker/ControlDashboard.kt [49:115]


fun ControlDashboard(
    controlDashboardUiState: ControlDashboardUiState,
    onMicClicked: () -> Unit,
    onPlayClicked: () -> Unit,
    onMusicClicked: () -> Unit,
    modifier: Modifier = Modifier
) {
    val circle = Any()
    val mic = Any()
    val play = Any()
    val music = Any()

    val constraintSet = createConstraintSet(
        controlDashboardUiState = controlDashboardUiState,
        circle = circle,
        mic = mic,
        play = play,
        music = music,
    )

    // We are using ConstraintLayout here for the circular constraints
    // In general, ConstraintLayout is less necessary for Compose than it was for Views
    ConstraintLayout(
        constraintSet = constraintSet,
        modifier = modifier
    ) {
        Spacer(
            modifier = Modifier.layoutId(circle)
        )

        ControlDashboardButton(
            buttonState = controlDashboardUiState.micState,
            onClick = onMicClicked,
            layoutId = mic,
            imageVector = Icons.Filled.Mic,
            contentDescription = if (controlDashboardUiState.micState.expanded) {
                stringResource(id = R.string.stop_recording)
            } else {
                stringResource(id = R.string.record)
            }
        )

        ControlDashboardButton(
            buttonState = controlDashboardUiState.playState,
            onClick = onPlayClicked,
            layoutId = play,
            imageVector = Icons.Filled.PlayArrow,
            contentDescription = if (controlDashboardUiState.playState.expanded) {
                stringResource(id = R.string.stop_playing_recording)
            } else {
                stringResource(id = R.string.play_recording)
            }
        )

        ControlDashboardButton(
            buttonState = controlDashboardUiState.musicState,
            onClick = onMusicClicked,
            layoutId = music,
            imageVector = Icons.Filled.MusicNote,
            contentDescription = if (controlDashboardUiState.musicState.expanded) {
                stringResource(id = R.string.stop_playing_music)
            } else {
                stringResource(id = R.string.play_music)
            }
        )
    }
}