Как написать бота с фиксированным набором сообщений на android, kotlin, jetpack compose?

            verticalArrangement = Arrangement.spacedBy(12.dp),
            contentPadding = PaddingValues(top = 12.dp, start = 24.dp, end = 24.dp)
        ) {
            item {
                MessageCard(message = "Добрый день, пришлите мне ваше фото. Посмотрим, что можно сделать с вашей прической")
            }
            itemsIndexed(items = state.messages) { _, item ->
                Row(
                    modifier = Modifier.fillMaxWidth(),
                    horizontalArrangement =
                    Arrangement.Start

                ) {
                    Column {
                        MessageCard(message = item)
                        Spacer(modifier = Modifier.height(12.dp))
                        SubcomposeAsyncImage(
                            modifier = Modifier
                                .padding(horizontal = 24.dp)
                                .fillMaxWidth(),
                            model = state.photoUrl,
                            contentDescription = stringResource(R.string.chat_image_haircut)
                        )
                        AnimatedVisibility(visible = state.isButtonsVisible && state.isButton) {
                            Row(
                                modifier = Modifier
                                    .padding(horizontal = 24.dp)
                                    .fillMaxWidth(),
                                horizontalArrangement = Arrangement.SpaceBetween
                            ) {
                                Button(onClick = { viewModel.sendEvent(ChatScreenUiEvent.OnHaircutChangeClick("Бокс")) }) {
                                    Text(text = "Бокс - 400р")
                                }
                                Spacer(modifier = Modifier.width(24.dp))
                                Button(onClick = { viewModel.sendEvent(ChatScreenUiEvent.OnHaircutChangeClick("Полубокс")) }) {
                                Text(text = "Полубокс - 640р")
                                }
                            }
                        }
                    }
                }
            }
        }



    private val botMessages: List<String> = listOf(
        "Хм, здесь я могу вам предложить два варианта - бокс 400 рублей, полубокс 670 рублей",
        "Хороший выбор, напишите, когда вы сможете к нам приехать за новой прической"
    )

    private val botSendMessagesList = emptyList<String>().toMutableList()

    private var messageIndex: Int = 0

    private val _state = MutableStateFlow(ChatScreenUiState.Empty)
    val state = _state.asStateFlow()

    fun sendEvent(event: ChatScreenUiEvent) {
        when (event) {
            is ChatScreenUiEvent.OnMessageInput -> {
                viewModelScope.launch { _state.update { it.copy(message = event.text) } }
            }

            is ChatScreenUiEvent.OnSendMessage -> {
//                        repositories.sendMessage(state.value.message)
                viewModelScope.launch {
                    if (state.value.message.trim().isNotEmpty()) {
                        sendBotMessage()
                        _state.update { it.copy(message = "") }
                    }
                }
            }

            is ChatScreenUiEvent.OnHaircutChangeClick -> {
                viewModelScope.launch {

                }
            }

            is ChatScreenUiEvent.OnImagePick -> {
                viewModelScope.launch {
                    repositories.sendPhoto(event.imageUrl.toUri())
                    _state.update { it.copy(photoUrl = event.imageUrl) }
                }
            }
        }
    }

    private fun sendBotMessage() {
        botSendMessagesList.add(state.value.message)
        if (messageIndex == 0) {
            _state.update { it.copy(isButtonsVisible = true, isButton = true) }
            botSendMessagesList.add(botMessages[messageIndex])
            messageIndex++
        } else {
            _state.update { it.copy(isButtonsVisible = false, isButton = false) }
            botSendMessagesList.add(botMessages[messageIndex])
            messageIndex++
        }
        _state.update { it.copy(messages = botSendMessagesList.toList()) }
    }```

Ответы (0 шт):