From eb34cdc3e350a50ce98959bbf05f83813a6c2e12 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Fri, 13 Sep 2019 21:38:18 +0200 Subject: keep track of previously edited ids --- .../java/de/pixart/messenger/entities/Edited.java | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/main/java/de/pixart/messenger/entities/Edited.java (limited to 'src/main/java/de/pixart/messenger/entities/Edited.java') diff --git a/src/main/java/de/pixart/messenger/entities/Edited.java b/src/main/java/de/pixart/messenger/entities/Edited.java new file mode 100644 index 000000000..a992e6c97 --- /dev/null +++ b/src/main/java/de/pixart/messenger/entities/Edited.java @@ -0,0 +1,80 @@ +package de.pixart.messenger.entities; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.List; + +public class Edited { + + private final String editedId; + private final String serverMsgId; + + public Edited(String editedId, String serverMsgId) { + this.editedId = editedId; + this.serverMsgId = serverMsgId; + } + + public static String toJson(List edits) throws JSONException { + JSONArray jsonArray = new JSONArray(); + for (Edited edited : edits) { + jsonArray.put(edited.toJson()); + } + return jsonArray.toString(); + } + + public static boolean wasPreviouslyEditedRemoteMsgId(List editeds, String remoteMsgId) { + for (Edited edited : editeds) { + if (edited.editedId != null && edited.editedId.equals(remoteMsgId)) { + return true; + } + } + return false; + } + + public static boolean wasPreviouslyEditedServerMsgId(List editeds, String serverMsgId) { + for (Edited edited : editeds) { + if (edited.serverMsgId != null && edited.serverMsgId.equals(serverMsgId)) { + return true; + } + } + return false; + } + + public static Edited fromJson(JSONObject jsonObject) throws JSONException { + String edited = jsonObject.getString("edited_id"); + String serverMsgId = jsonObject.getString("server_msg_id"); + return new Edited(edited, serverMsgId); + } + + public static List fromJson(String input) { + ArrayList list = new ArrayList<>(); + if (input == null) { + return list; + } + try { + JSONArray jsonArray = new JSONArray(input); + for (int i = 0; i < jsonArray.length(); ++i) { + list.add(fromJson(jsonArray.getJSONObject(i))); + } + + } catch (JSONException e) { + list = new ArrayList<>(); + list.add(new Edited(input, null)); + } + return list; + } + + public JSONObject toJson() throws JSONException { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("edited_id", editedId); + jsonObject.put("server_msg_id", serverMsgId); + return jsonObject; + } + + public String getEditedId() { + return editedId; + } +} \ No newline at end of file -- cgit v1.2.3