From fcb490dc2cf25a4ecc62f97372d9571a1445dbc1 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Fri, 27 Apr 2018 12:09:17 +0200 Subject: [PATCH] Implement author parsing Signed-off-by: Mario Danic --- .../talk/models/json/chat/ChatMessage.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java index c9bc1f20f..ae82ce52e 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java @@ -28,6 +28,7 @@ import com.stfalcon.chatkit.commons.models.IUser; import org.parceler.Parcel; import java.util.Date; +import java.util.HashMap; import lombok.Data; @@ -69,6 +70,9 @@ public class ChatMessage implements IMessage { @JsonField(name = "message") String message; + @JsonField(name = "messageParameters") + HashMap> messageParameters; + @Override public String getId() { return Integer.toString(jsonMessageId); @@ -76,7 +80,7 @@ public class ChatMessage implements IMessage { @Override public String getText() { - return message; + return getParsedMessage(); } @Override @@ -103,4 +107,18 @@ public class ChatMessage implements IMessage { public Date getCreatedAt() { return new Date(timestamp * 1000L); } + + private String getParsedMessage() { + String message = getMessage(); + if (messageParameters != null && messageParameters.size() > 0) { + for (String key : messageParameters.keySet()) { + HashMap individualHashMap = messageParameters.get(key); + if (individualHashMap.get("type").equals("user")) { + message = message.replaceAll("\\{" + key + "\\}", messageParameters.get(key).get("name")); + } + } + } + + return message; + } }