X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/e057743232c0cae1401ba01a0ed1fdcd1c6ba5e0..bebe7bc51333aad1a752f70d091d74cae2adbf02:/src/main/java/org/asamk/signal/Manager.java diff --git a/src/main/java/org/asamk/signal/Manager.java b/src/main/java/org/asamk/signal/Manager.java index 46c2e64c..505ee12d 100644 --- a/src/main/java/org/asamk/signal/Manager.java +++ b/src/main/java/org/asamk/signal/Manager.java @@ -818,6 +818,16 @@ class Manager implements Signal { save(); } + @Override + public List getGroupIds() { + List groups = getGroups(); + List ids = new ArrayList(groups.size()); + for (GroupInfo group : groups) { + ids.add(group.groupId); + } + return ids; + } + @Override public String getGroupName(byte[] groupId) { GroupInfo group = getGroup(groupId); @@ -1479,9 +1489,10 @@ class Manager implements Signal { try (OutputStream fos = new FileOutputStream(groupsFile)) { DeviceGroupsOutputStream out = new DeviceGroupsOutputStream(fos); for (GroupInfo record : groupStore.getGroups()) { + ThreadInfo info = threadStore.getThread(Base64.encodeBytes(record.groupId)); out.write(new DeviceGroup(record.groupId, Optional.fromNullable(record.name), new ArrayList<>(record.members), createGroupAvatarAttachment(record.groupId), - record.active, Optional.absent())); + record.active, Optional.fromNullable(info != null ? info.messageExpirationTime : null))); } } @@ -1513,6 +1524,7 @@ class Manager implements Signal { DeviceContactsOutputStream out = new DeviceContactsOutputStream(fos); for (ContactInfo record : contactStore.getContacts()) { VerifiedMessage verifiedMessage = null; + ThreadInfo info = threadStore.getThread(record.number); if (getIdentities().containsKey(record.number)) { JsonIdentityKeyStore.Identity currentIdentity = null; for (JsonIdentityKeyStore.Identity id : getIdentities().get(record.number)) { @@ -1528,7 +1540,7 @@ class Manager implements Signal { // TODO include profile key out.write(new DeviceContact(record.number, Optional.fromNullable(record.name), createContactAvatarAttachment(record.number), Optional.fromNullable(record.color), - Optional.fromNullable(verifiedMessage), Optional.absent(), false, Optional.absent())); + Optional.fromNullable(verifiedMessage), Optional.absent(), false, Optional.fromNullable(info != null ? info.messageExpirationTime : null))); } }