Prevent empty chat bubble when sending only spaces

This commit is contained in:
Sylvain Berfini 2022-05-03 15:49:16 +02:00
parent 3eb8382423
commit a31381632f

View file

@ -128,7 +128,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel()
attachFileEnabled.value = true
sendMessageEnabled.value = false
isReadOnly.value = chatRoom.isReadOnly()
isReadOnly.value = chatRoom.isReadOnly
val recorderParams = coreContext.core.createRecorderParams()
if (corePreferences.voiceMessagesFormatMkv) {
@ -157,7 +157,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel()
}
fun onTextToSendChanged(value: String) {
sendMessageEnabled.value = value.isNotEmpty() || attachments.value?.isNotEmpty() == true || isPendingVoiceRecord.value == true
sendMessageEnabled.value = value.trim().isNotEmpty() || attachments.value?.isNotEmpty() == true || isPendingVoiceRecord.value == true
if (value.isNotEmpty()) {
if (attachFileEnabled.value == true && !corePreferences.allowMultipleFilesAndTextInSameMessage) {
attachFileEnabled.value = false
@ -180,7 +180,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel()
)
attachments.value = list
sendMessageEnabled.value = textToSend.value.orEmpty().isNotEmpty() || list.isNotEmpty() || isPendingVoiceRecord.value == true
sendMessageEnabled.value = textToSend.value.orEmpty().trim().isNotEmpty() || list.isNotEmpty() || isPendingVoiceRecord.value == true
if (!corePreferences.allowMultipleFilesAndTextInSameMessage) {
attachFileEnabled.value = false
}
@ -192,7 +192,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel()
list.remove(attachment)
attachments.value = list
sendMessageEnabled.value = textToSend.value.orEmpty().isNotEmpty() || list.isNotEmpty() || isPendingVoiceRecord.value == true
sendMessageEnabled.value = textToSend.value.orEmpty().trim().isNotEmpty() || list.isNotEmpty() || isPendingVoiceRecord.value == true
if (!corePreferences.allowMultipleFilesAndTextInSameMessage) {
attachFileEnabled.value = list.isEmpty()
}
@ -225,13 +225,13 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel()
isVoiceRecording.value = false
}
val toSend = textToSend.value
if (toSend != null && toSend.isNotEmpty()) {
val toSend = textToSend.value.orEmpty().trim()
if (toSend.isNotEmpty()) {
if (voiceRecord && isBasicChatRoom) {
val textMessage: ChatMessage = chatRoom.createMessageFromUtf8(toSend.trim())
val textMessage: ChatMessage = chatRoom.createMessageFromUtf8(toSend)
textMessage.send()
} else {
message.addUtf8TextContent(toSend.trim())
message.addUtf8TextContent(toSend)
}
}
@ -381,7 +381,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel()
isPendingVoiceRecord.value = false
isVoiceRecording.value = false
sendMessageEnabled.value = textToSend.value?.isNotEmpty() == true || attachments.value?.isNotEmpty() == true
sendMessageEnabled.value = textToSend.value.orEmpty().trim().isNotEmpty() == true || attachments.value?.isNotEmpty() == true
if (!isPlayerClosed()) {
stopVoiceRecordPlayer()