فهرست منبع

Implement author parsing

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 سال پیش
والد
کامیت
fcb490dc2c
1فایلهای تغییر یافته به همراه19 افزوده شده و 1 حذف شده
  1. 19 1
      app/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java

+ 19 - 1
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<String, HashMap<String, String>> 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<String, String> individualHashMap = messageParameters.get(key);
+                if (individualHashMap.get("type").equals("user")) {
+                    message = message.replaceAll("\\{" + key + "\\}", messageParameters.get(key).get("name"));
+                }
+            }
+        }
+
+        return message;
+    }
 }