]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/JsonGroupStore.java
Use nio Files.delete instead of File.delete everywhere
[signal-cli] / src / main / java / org / asamk / signal / JsonGroupStore.java
index a75c5148b1fef14c45acd380da691ce548d205df..aa7e3a4501371986d07f497e61de70c20b5d3d1f 100644 (file)
@@ -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<String, GroupInfo> groups = new HashMap<>();
 
-    private static final ObjectMapper jsonProcessot = new ObjectMapper();
+    public static List<GroupInfo> groupsWithLegacyAvatarId = new ArrayList<>();
+
+    private static final ObjectMapper jsonProcessor = 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<GroupInfo> getGroups() {
+        return new ArrayList<>(groups.values());
+    }
+
     public static class MapToListSerializer extends JsonSerializer<Map<?, ?>> {
         @Override
         public void serialize(final Map<?, ?> value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException {
@@ -44,7 +49,11 @@ public class JsonGroupStore {
             Map<String, GroupInfo> groups = new HashMap<>();
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
             for (JsonNode n : node) {
-                GroupInfo g = jsonProcessot.treeToValue(n, GroupInfo.class);
+                GroupInfo g = jsonProcessor.treeToValue(n, GroupInfo.class);
+                // Check if a legacy avatarId exists
+                if (g.getAvatarId() != 0) {
+                    groupsWithLegacyAvatarId.add(g);
+                }
                 groups.put(Base64.encodeBytes(g.groupId), g);
             }