X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/eabd361405a54a5b7122bf537cb299306f098e45..bfb51e414b42c69538498e1aa5cbb7421138d5e2:/src/main/java/org/asamk/signal/JsonGroupStore.java diff --git a/src/main/java/org/asamk/signal/JsonGroupStore.java b/src/main/java/org/asamk/signal/JsonGroupStore.java index a75c5148..da512706 100644 --- a/src/main/java/org/asamk/signal/JsonGroupStore.java +++ b/src/main/java/org/asamk/signal/JsonGroupStore.java @@ -8,7 +8,9 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class JsonGroupStore { @@ -17,20 +19,23 @@ public class JsonGroupStore { @JsonDeserialize(using = JsonGroupStore.GroupsDeserializer.class) private Map groups = new HashMap<>(); + public static List groupsWithLegacyAvatarId = new ArrayList<>(); + private static final ObjectMapper jsonProcessot = new ObjectMapper(); void updateGroup(GroupInfo group) { groups.put(Base64.encodeBytes(group.groupId), group); } - GroupInfo getGroup(byte[] groupId) throws GroupNotFoundException { + GroupInfo getGroup(byte[] groupId) { GroupInfo g = groups.get(Base64.encodeBytes(groupId)); - if (g == null) { - throw new GroupNotFoundException(groupId); - } return g; } + List getGroups() { + return new ArrayList<>(groups.values()); + } + public static class MapToListSerializer extends JsonSerializer> { @Override public void serialize(final Map value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException { @@ -45,6 +50,10 @@ public class JsonGroupStore { JsonNode node = jsonParser.getCodec().readTree(jsonParser); for (JsonNode n : node) { GroupInfo g = jsonProcessot.treeToValue(n, GroupInfo.class); + // Check if a legacy avatarId exists + if (g.getAvatarId() != 0) { + groupsWithLegacyAvatarId.add(g); + } groups.put(Base64.encodeBytes(g.groupId), g); }