diff --git a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt index 0564dc060f..fba0abbb48 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt @@ -356,6 +356,7 @@ class NewMessageViewModel @Inject constructor( } private suspend fun setReplyForwardDraftValues(draft: Draft, fullMessage: Message) { + with(draftInitManager) { draft.setPreviousMessage(draftMode = draftMode, previousMessage = fullMessage) } @@ -363,8 +364,14 @@ class NewMessageViewModel @Inject constructor( val quote = draftInitManager.createQuote(draftMode, fullMessage, draft.attachments) if (quote != null) initialQuote = quote + if (fullMessage.body == null) { + SentryLog.e(TAG, "The message we're trying to reply to has an unexpected null body") { scope -> + scope.setExtra("Message resource", fullMessage.resource) + } + } + val isAiEnabled = currentMailbox().featureFlags.contains(FeatureFlag.AI) - if (isAiEnabled) parsePreviousMailToAnswerWithAi(fullMessage.body!!) + if (isAiEnabled) parsePreviousMailToAnswerWithAi(fullMessage.body) val isEncryptionEnabled = currentMailbox().featureFlags.contains(FeatureFlag.ENCRYPTION) if (isEncryptionEnabled) draft.isEncrypted = fullMessage.isEncrypted @@ -567,9 +574,9 @@ class NewMessageViewModel @Inject constructor( } } - private suspend fun parsePreviousMailToAnswerWithAi(previousMessageBody: Body) { + private suspend fun parsePreviousMailToAnswerWithAi(previousMessageBody: Body?) { if (draftMode == DraftMode.REPLY || draftMode == DraftMode.REPLY_ALL) { - aiSharedData.previousMessageBodyPlainText = previousMessageBody.asPlainText() + aiSharedData.previousMessageBodyPlainText = previousMessageBody?.asPlainText() } }