Skip to content

Commit 3179849

Browse files
committed
avoid crash if messageParameters is null
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
1 parent 8b02b77 commit 3179849

2 files changed

Lines changed: 36 additions & 36 deletions

File tree

app/src/main/java/com/nextcloud/talk/chat/MessageInputFragment.kt

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -445,12 +445,16 @@ class MessageInputFragment : Fragment() {
445445

446446
val message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
447447
if (message.message!!.trim() != inputEditText.trim()) {
448-
val editedMessage = messageUtils.processEditMessageParameters(
449-
message.messageParameters!!,
450-
message,
451-
inputEditText.toString()
452-
)
453-
editMessageAPI(message, editedMessage.toString())
448+
if (message.messageParameters != null) {
449+
val editedMessage = messageUtils.processEditMessageParameters(
450+
message.messageParameters!!,
451+
message,
452+
inputEditText.toString()
453+
)
454+
editMessageAPI(message, editedMessage.toString())
455+
} else {
456+
editMessageAPI(message, inputEditText.toString())
457+
}
454458
}
455459
clearEditUI()
456460
}
@@ -967,21 +971,19 @@ class MessageInputFragment : Fragment() {
967971
}
968972

969973
private fun setEditUI(message: ChatMessage) {
970-
if (message.message != null) {
971-
val editedMessage = ChatUtils.getParsedMessage(message.message, message.messageParameters)
972-
binding.fragmentEditView.editMessage.text = editedMessage
973-
binding.fragmentMessageInputView.inputEditText.setText(editedMessage)
974-
if (mentionAutocomplete != null && mentionAutocomplete!!.isPopupShowing) {
975-
mentionAutocomplete?.dismissPopup()
976-
}
977-
val end = binding.fragmentMessageInputView.inputEditText.text.length
978-
binding.fragmentMessageInputView.inputEditText.setSelection(end)
979-
binding.fragmentMessageInputView.messageSendButton.visibility = View.GONE
980-
binding.fragmentMessageInputView.recordAudioButton.visibility = View.GONE
981-
binding.fragmentMessageInputView.editMessageButton.visibility = View.VISIBLE
982-
binding.fragmentEditView.editMessageView.visibility = View.VISIBLE
983-
binding.fragmentMessageInputView.attachmentButton.visibility = View.GONE
974+
val editedMessage = ChatUtils.getParsedMessage(message.message, message.messageParameters)
975+
binding.fragmentEditView.editMessage.text = editedMessage
976+
binding.fragmentMessageInputView.inputEditText.setText(editedMessage)
977+
if (mentionAutocomplete != null && mentionAutocomplete!!.isPopupShowing) {
978+
mentionAutocomplete?.dismissPopup()
984979
}
980+
val end = binding.fragmentMessageInputView.inputEditText.text.length
981+
binding.fragmentMessageInputView.inputEditText.setSelection(end)
982+
binding.fragmentMessageInputView.messageSendButton.visibility = View.GONE
983+
binding.fragmentMessageInputView.recordAudioButton.visibility = View.GONE
984+
binding.fragmentMessageInputView.editMessageButton.visibility = View.VISIBLE
985+
binding.fragmentEditView.editMessageView.visibility = View.VISIBLE
986+
binding.fragmentMessageInputView.attachmentButton.visibility = View.GONE
985987
}
986988

987989
private fun clearEditUI() {

app/src/main/java/com/nextcloud/talk/utils/message/MessageUtils.kt

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -160,25 +160,23 @@ class MessageUtils(val context: Context) {
160160
}
161161

162162
fun processEditMessageParameters(
163-
messageParameters: HashMap<String?, HashMap<String?, String?>>?,
163+
messageParameters: HashMap<String?, HashMap<String?, String?>>,
164164
message: ChatMessage?,
165165
inputEditText: String
166166
): Spanned {
167-
var result = inputEditText.toString()
168-
for ((key, valueMap) in messageParameters!!) {
169-
if (key != null) {
170-
val mentionId = valueMap["mention-id"]
171-
val type = valueMap["type"]
172-
val name = valueMap["name"]
173-
val user = message?.activeUser
174-
if (user != null && mentionId != null && type != null) {
175-
val placeholder = "@$name"
176-
result = when (type) {
177-
"user", "guest", "email" -> result.replace(placeholder, "@$mentionId", ignoreCase = false)
178-
"user-group", "circle" -> result.replace(placeholder, "@\"$mentionId\"", ignoreCase = false)
179-
"call" -> result.replace(placeholder, "@all", ignoreCase = false)
180-
else -> result
181-
}
167+
var result = inputEditText
168+
for (key in messageParameters.keys) {
169+
val individualHashMap = message?.messageParameters?.get(key)
170+
if (individualHashMap != null) {
171+
val mentionId = individualHashMap["mention-id"]
172+
val type = individualHashMap["type"]
173+
val name = individualHashMap["name"]
174+
val placeholder = "@$name"
175+
result = when (type) {
176+
"user", "guest", "email" -> result.replace(placeholder, "@$mentionId", ignoreCase = false)
177+
"user-group", "circle" -> result.replace(placeholder, "@\"$mentionId\"", ignoreCase = false)
178+
"call" -> result.replace(placeholder, "@all", ignoreCase = false)
179+
else -> result
182180
}
183181
}
184182
}

0 commit comments

Comments
 (0)