diff --git a/xxclient/src/main/java/io/elixxir/xxclient/group/Group.kt b/xxclient/src/main/java/io/elixxir/xxclient/group/Group.kt index a174b490375670dc740ce7ca0dd74daa1cb9c565..ebbf0aea1d0ba2b2268490717ce597bf147aa550 100644 --- a/xxclient/src/main/java/io/elixxir/xxclient/group/Group.kt +++ b/xxclient/src/main/java/io/elixxir/xxclient/group/Group.kt @@ -1,7 +1,7 @@ package io.elixxir.xxclient.group -import io.elixxir.xxclient.models.BindingsModel.Companion.decodeArray -import io.elixxir.xxclient.models.GroupMember +import io.elixxir.xxclient.models.BindingsModel.Companion.decode +import io.elixxir.xxclient.models.GroupMembersList import bindings.Group as GroupBindings interface Group { @@ -9,7 +9,7 @@ interface Group { val createdNano: Long val id: ByteArray val initMessage: ByteArray - val membership: List<GroupMember> + val membership: GroupMembersList val name: ByteArray val serialize: ByteArray } @@ -25,11 +25,10 @@ open class GroupAdapter( get() = group.id override val initMessage: ByteArray get() = group.initMessage - override val membership: List<GroupMember> - get() = decodeArray(group.membership) + override val membership: GroupMembersList + get() = decode(group.membership) ?: GroupMembersList(listOf()) override val name: ByteArray get() = group.name - override val serialize: ByteArray - get() = group.serialize() + override val serialize: ByteArray by lazy { group.serialize() } } diff --git a/xxclient/src/main/java/io/elixxir/xxclient/models/GroupMember.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/GroupMember.kt index 153fea7ace518d2a438a7787b123ed8e277cf540..5a834b3beaa9a899d22c89a7a6a37d026a0a1b48 100644 --- a/xxclient/src/main/java/io/elixxir/xxclient/models/GroupMember.kt +++ b/xxclient/src/main/java/io/elixxir/xxclient/models/GroupMember.kt @@ -1,12 +1,22 @@ package io.elixxir.xxclient.models +import com.google.gson.annotations.SerializedName + +data class GroupMembersList( + val members: List<GroupMember> +) : BindingsModel data class GroupMember( + @SerializedName("ID") val id: ByteArray, + @SerializedName("DHKey") val dhKey: DHKey -) : BindingsModel +) : BindingsModel { -data class DHKey( - val value: String, - val fingerprint: Int -) : BindingsModel \ No newline at end of file + data class DHKey( + @SerializedName("Value") + val value: String, + @SerializedName("Fingerprint") + val fingerprint: Int + ) : BindingsModel +} \ No newline at end of file