Java

Enviar un mensaje

Es hora de enviar el primer mensaje.

Para enviar un mensaje, registre una devolución de llamada dentro de onCreate método:

findViewById(R.id.sendMessageButton).setOnClickListener(it -> sendMessage());

Añadir sendMessage método inside MainActivity:

private  void sendMessage() {
    String message = messageEditText.getText().toString();

    if (message.trim().isEmpty()) {
        Toast.makeText(this, "Message is blank", Toast.LENGTH_SHORT).show();
        return;
    }

    messageEditText.setText("");
    hideKeyboard();

    conversation.sendMessage(NexmoMessage.fromText(message), new NexmoRequestListener<Void>() {
        @Override
        public void onError(@NonNull NexmoApiError apiError) {
            Toast.makeText(MainActivity.this, "Error sending message", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onSuccess(@Nullable Void aVoid) {

        }
    });
}

El método anterior oculta el teclado, borra el campo de texto y envía el mensaje.

Ahora en el MainActivity añadir lo que falta hideKeyboard método - el método de utilidad que oculta el teclado del sistema Android:

private void hideKeyboard() {
    InputMethodManager inputMethodManager = ContextCompat.getSystemService(this, InputMethodManager.class);

    View view = getCurrentFocus();

    if (view == null) {
        view = new View(this);
    }

    inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

Verás que, aunque el mensaje se ha enviado, la conversación no lo incluye. Vamos a hacerlo en el siguiente paso.