mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 22:04:24 +01:00
avoid crash if messageParameters is null
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
8b02b7797c
commit
317984919f
@ -445,12 +445,16 @@ class MessageInputFragment : Fragment() {
|
|||||||
|
|
||||||
val message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
|
val message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
|
||||||
if (message.message!!.trim() != inputEditText.trim()) {
|
if (message.message!!.trim() != inputEditText.trim()) {
|
||||||
|
if (message.messageParameters != null) {
|
||||||
val editedMessage = messageUtils.processEditMessageParameters(
|
val editedMessage = messageUtils.processEditMessageParameters(
|
||||||
message.messageParameters!!,
|
message.messageParameters!!,
|
||||||
message,
|
message,
|
||||||
inputEditText.toString()
|
inputEditText.toString()
|
||||||
)
|
)
|
||||||
editMessageAPI(message, editedMessage.toString())
|
editMessageAPI(message, editedMessage.toString())
|
||||||
|
} else {
|
||||||
|
editMessageAPI(message, inputEditText.toString())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
clearEditUI()
|
clearEditUI()
|
||||||
}
|
}
|
||||||
@ -967,7 +971,6 @@ class MessageInputFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setEditUI(message: ChatMessage) {
|
private fun setEditUI(message: ChatMessage) {
|
||||||
if (message.message != null) {
|
|
||||||
val editedMessage = ChatUtils.getParsedMessage(message.message, message.messageParameters)
|
val editedMessage = ChatUtils.getParsedMessage(message.message, message.messageParameters)
|
||||||
binding.fragmentEditView.editMessage.text = editedMessage
|
binding.fragmentEditView.editMessage.text = editedMessage
|
||||||
binding.fragmentMessageInputView.inputEditText.setText(editedMessage)
|
binding.fragmentMessageInputView.inputEditText.setText(editedMessage)
|
||||||
@ -982,7 +985,6 @@ class MessageInputFragment : Fragment() {
|
|||||||
binding.fragmentEditView.editMessageView.visibility = View.VISIBLE
|
binding.fragmentEditView.editMessageView.visibility = View.VISIBLE
|
||||||
binding.fragmentMessageInputView.attachmentButton.visibility = View.GONE
|
binding.fragmentMessageInputView.attachmentButton.visibility = View.GONE
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private fun clearEditUI() {
|
private fun clearEditUI() {
|
||||||
binding.fragmentMessageInputView.editMessageButton.visibility = View.GONE
|
binding.fragmentMessageInputView.editMessageButton.visibility = View.GONE
|
||||||
|
@ -160,18 +160,17 @@ class MessageUtils(val context: Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun processEditMessageParameters(
|
fun processEditMessageParameters(
|
||||||
messageParameters: HashMap<String?, HashMap<String?, String?>>?,
|
messageParameters: HashMap<String?, HashMap<String?, String?>>,
|
||||||
message: ChatMessage?,
|
message: ChatMessage?,
|
||||||
inputEditText: String
|
inputEditText: String
|
||||||
): Spanned {
|
): Spanned {
|
||||||
var result = inputEditText.toString()
|
var result = inputEditText
|
||||||
for ((key, valueMap) in messageParameters!!) {
|
for (key in messageParameters.keys) {
|
||||||
if (key != null) {
|
val individualHashMap = message?.messageParameters?.get(key)
|
||||||
val mentionId = valueMap["mention-id"]
|
if (individualHashMap != null) {
|
||||||
val type = valueMap["type"]
|
val mentionId = individualHashMap["mention-id"]
|
||||||
val name = valueMap["name"]
|
val type = individualHashMap["type"]
|
||||||
val user = message?.activeUser
|
val name = individualHashMap["name"]
|
||||||
if (user != null && mentionId != null && type != null) {
|
|
||||||
val placeholder = "@$name"
|
val placeholder = "@$name"
|
||||||
result = when (type) {
|
result = when (type) {
|
||||||
"user", "guest", "email" -> result.replace(placeholder, "@$mentionId", ignoreCase = false)
|
"user", "guest", "email" -> result.replace(placeholder, "@$mentionId", ignoreCase = false)
|
||||||
@ -181,7 +180,6 @@ class MessageUtils(val context: Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return SpannableString(result)
|
return SpannableString(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user