diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java index e6474ce4b7..cda9f4116e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupMessageProcessor.java @@ -69,7 +69,7 @@ public class GroupMessageProcessor { if (record.isPresent() && group.getType() == Type.UPDATE) { return handleGroupUpdate(context, content, group, record.get(), outgoing); } else if (!record.isPresent() && group.getType() == Type.UPDATE) { - return handleGroupCreate(context, content, group, outgoing); + return handleGroupCreate(context, content, group, outgoing, message.getTimestamp()); } else if (record.isPresent() && group.getType() == Type.QUIT) { return handleGroupLeave(context, content, group, record.get(), outgoing); } else if (record.isPresent() && group.getType() == Type.REQUEST_INFO) { @@ -83,7 +83,8 @@ public class GroupMessageProcessor { private static @Nullable Long handleGroupCreate(@NonNull Context context, @NonNull SignalServiceContent content, @NonNull SignalServiceGroup group, - boolean outgoing) + boolean outgoing, + Long formationTimestamp) { GroupDatabase database = DatabaseFactory.getGroupDatabase(context); String id = GroupUtil.getEncodedId(group); @@ -108,7 +109,7 @@ public class GroupMessageProcessor { } database.create(id, group.getName().orNull(), members, - avatar != null && avatar.isPointer() ? avatar.asPointer() : null, null, admins); + avatar != null && avatar.isPointer() ? avatar.asPointer() : null, null, admins, formationTimestamp); if (group.getMembers().isPresent()) { ClosedGroupsProtocol.establishSessionsWithMembersIfNeeded(context, group.getMembers().get()); diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSenderClosedGroup.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSenderClosedGroup.kt index 96a2502dfb..8299eb73c7 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSenderClosedGroup.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSenderClosedGroup.kt @@ -44,7 +44,7 @@ fun MessageSender.createClosedGroup(name: String, members: Collection): val admins = setOf( userPublicKey ) val adminsAsData = admins.map { ByteString.copyFrom(Hex.fromStringCondensed(it)) } storage.createGroup(groupID, name, LinkedList(members.map { Address.fromSerialized(it) }), - null, null, LinkedList(admins.map { Address.fromSerialized(it) })) + null, null, LinkedList(admins.map { Address.fromSerialized(it) }), System.currentTimeMillis()) storage.setProfileSharing(Address.fromSerialized(groupID), true) // Send a closed group update message to all members individually val closedGroupUpdateKind = ClosedGroupControlMessage.Kind.New(ByteString.copyFrom(Hex.fromStringCondensed(groupPublicKey)), name, encryptionKeyPair, membersAsData, adminsAsData)