Como implementar o Multiline EditText com o botão ActionDone (sem o botão Enter)

Eu tenho o EditText, que é usado para inserir conteúdo em mensagens (e-mails, sms). Quero que a mensagem seja postada imediatamente no clique no botão ActionDone. Eu uso o seguinte código para isso:

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;
            }
        }); 

Mas também quero que esse campo de mensagem seja multilinha, como em qualquer outro aplicativo de mensagens. Eu posso conseguir isso com esta linha:

android:inputType="textMultiLine"

O problema é que, após adicionar esta linha, o botão ActionDone começa a agir como o botão Enter. Então, meu retorno de chamada para capturarEditorInfo.IME_ACTION_DONE nunca é chamado. Portanto, cada vez que o usuário pressiona o botão, o cursor se move para a nova linha, em vez de postar a mensagem.

Como posso manter o comportamento multilinha do EditText (capacidade de mostrar texto em várias linhas) e o botão ActionDone?

questionAnswers(3)

yourAnswerToTheQuestion