Cómo implementar Texto de edición multilínea con el botón ActionDone (sin el botón Enter)

Tengo EditText que se usa para ingresar contenido en mensajes (correos electrónicos, sms). Quiero que el mensaje se publique inmediatamente al hacer clic en el botón ActionDone. Yo uso el siguiente código para esto:

message.setOnEditorActionListener((textView, i, keyEvent) -> {
            switch (i) {
                case EditorInfo.IME_ACTION_DONE:
                    if (messageCanBePosted()) {
                        SoftKeyboard.hide(message);
                        postMessage();
                        return true;
                    } else {
                        return false;
                    }
                default:
                    return false;
            }
        }); 

Pero también quiero que este campo de mensaje sea multilínea, como en cualquier otra aplicación de mensajería. Puedo lograrlo con esta línea:

android:inputType="textMultiLine"

El problema es que después de agregar esta línea, el botón ActionDone comienza a actuar como el botón Enter. Entonces mi devolución de llamada para atraparEditorInfo.IME_ACTION_DONE nunca se llama. Por lo tanto, cada vez que el usuario presiona ese botón, el cursor se mueve a una nueva línea en lugar de publicar un mensaje.

¿Cómo puedo mantener el comportamiento multilínea de EditText (capacidad de mostrar texto en varias líneas) y el botón ActionDone?

Respuestas a la pregunta(3)

Su respuesta a la pregunta