Kotlin

Enviando uma mensagem

Na etapa anterior, você aprendeu sobre conversas e eventos; ao enviar uma mensagem, cria-se um novo evento e ele é enviado pelo cliente.

Para enviar uma mensagem, atualize o onClick no Button na visualização:

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ChatScreen() {
    ...
        Row(){
            TextField(
                value = text,
                onValueChange = { text = it },
                label = { Text("Message") }
            )
            Button(onClick = {
                runBlocking {
                    vm.sendMessage(text)
                }
            }) {
                Text("Send")
            }
        }
    ...

}

Isso chamará um sendMessage função no ChatViewModel. Em seguida, adicione sendMessage para o ChatViewModel classe:

class ChatViewModel(application: Application) : AndroidViewModel(application = application) {
    ...
    suspend fun sendMessage(message: String){
        try {
            client.sendMessageTextEvent(conversationID, message)
        } catch (err:Error) {
            isError = true
            error = err.localizedMessage?.toString() ?: ""
        }
    }
}

Para enviar uma mensagem de texto, você liga para sendMessageTextEvent no cliente com o ID da conversa e a mensagem. Se for bem-sucedido, ConversationEventListener será chamado. Isso anexará o evento ao events matriz que atualizará automaticamente a interface do usuário.

Compilar e executar

Cmd + R para compilar e executar novamente. Agora você tem um aplicativo de bate-papo em funcionamento! Para conversar simultaneamente, você pode executar o aplicativo em dois simuladores/dispositivos diferentes