diff --git a/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt b/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt index ecb56edf02..e33ab11b3a 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/messages/control/ConfigurationMessage.kt @@ -14,7 +14,7 @@ import org.session.libsignal.service.loki.utilities.removing05PrefixIfNeeded import org.session.libsignal.service.loki.utilities.toHexString import org.session.libsignal.utilities.Hex -class ConfigurationMessage(val closedGroups: List, val openGroups: List, val contacts: List, val displayName: String, val profilePicture: String?, val profileKey: ByteArray): ControlMessage() { +class ConfigurationMessage(): ControlMessage() { class ClosedGroup(val publicKey: String, val name: String, val encryptionKeyPair: ECKeyPair, val members: List, val admins: List) { val isValid: Boolean get() = members.isNotEmpty() && admins.isNotEmpty() @@ -30,7 +30,7 @@ class ConfigurationMessage(val closedGroups: List, val openGroups: val name = proto.name val encryptionKeyPairAsProto = proto.encryptionKeyPair val encryptionKeyPair = ECKeyPair(DjbECPublicKey(encryptionKeyPairAsProto.publicKey.toByteArray().removing05PrefixIfNeeded()), - DjbECPrivateKey(encryptionKeyPairAsProto.privateKey.toByteArray())) + DjbECPrivateKey(encryptionKeyPairAsProto.privateKey.toByteArray())) val members = proto.membersList.map { it.toByteArray().toHexString() } val admins = proto.adminsList.map { it.toByteArray().toHexString() } return ClosedGroup(publicKey, name, encryptionKeyPair, members, admins) @@ -85,6 +85,13 @@ class ConfigurationMessage(val closedGroups: List, val openGroups: override val ttl: Long = 4 * 24 * 60 * 60 * 1000 override val isSelfSendValid: Boolean = true + var closedGroups: List = listOf() + var openGroups: List = listOf() + var contacts: List = listOf() + var displayName: String = "" + var profilePicture: String? = null + var profileKey: ByteArray = byteArrayOf() + companion object { fun getCurrent(contacts: List): ConfigurationMessage? { @@ -128,6 +135,15 @@ class ConfigurationMessage(val closedGroups: List, val openGroups: } } + internal constructor(closedGroups: List, openGroups: List, contacts: List, displayName: String, profilePicture: String?, profileKey: ByteArray): this() { + this.closedGroups = closedGroups + this.openGroups = openGroups + this.contacts = contacts + this.displayName = displayName + this.profilePicture = profilePicture + this.profileKey = profileKey + } + override fun toProto(): SignalServiceProtos.Content? { val configurationProto = SignalServiceProtos.ConfigurationMessage.newBuilder() configurationProto.addAllClosedGroups(closedGroups.mapNotNull { it.toProto() })