From bb34a8eec37fd387c8151cd206a0330585462060 Mon Sep 17 00:00:00 2001 From: Kamal Bramwell <kamal@elixxir.io> Date: Tue, 15 Nov 2022 21:00:17 -0500 Subject: [PATCH] WIP: Updated Group model object, added GroupMembersList model class --- .../java/io/elixxir/xxclient/group/Group.kt | 13 ++++++------ .../io/elixxir/xxclient/models/GroupMember.kt | 20 ++++++++++++++----- 2 files changed, 21 insertions(+), 12 deletions(-) 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 a174b49..ebbf0ae 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 153fea7..5a834b3 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 -- GitLab