Skip to content
Snippets Groups Projects
Commit dc46b9f7 authored by Kamal Bramwell's avatar Kamal Bramwell
Browse files

Implemented GroupChatMessage and GroupMessageListener

parent 5d933c8d
No related branches found
No related tags found
No related merge requests found
package io.elixxir.xxclient.callbacks package io.elixxir.xxclient.callbacks
import bindings.GroupChatProcessor import bindings.GroupChatProcessor
import io.elixxir.xxclient.models.BindingsModel.Companion.decode
import io.elixxir.xxclient.models.GroupChatMessage
import io.elixxir.xxclient.utils.ReceptionId
import io.elixxir.xxclient.utils.RoundId
interface GroupMessageListener { interface GroupMessageListener {
val name: String val name: String
fun onMessageReceived( fun onMessageReceived(
decryptedMessage: ByteArray?, decryptedMessage: GroupChatMessage?,
message: ByteArray?, message: ByteArray?,
receptionId: ByteArray?, receptionId: ReceptionId?,
ephemeralId: Long, ephemeralId: Long,
roundId: Long, roundId: RoundId,
error: Exception? error: Exception?
) )
} }
...@@ -27,7 +31,12 @@ open class GroupChatProcessorAdapter( ...@@ -27,7 +31,12 @@ open class GroupChatProcessorAdapter(
error: Exception? error: Exception?
) { ) {
listener.onMessageReceived( listener.onMessageReceived(
decryptedMessage, message, receptionId, ephemeralId, roundId, error decode<GroupChatMessage>(decryptedMessage),
message,
receptionId,
ephemeralId,
roundId,
error
) )
} }
......
package io.elixxir.xxclient.group package io.elixxir.xxclient.group
import io.elixxir.xxclient.models.BindingsModel.Companion.decodeArray
import io.elixxir.xxclient.models.GroupMember
import bindings.Group as GroupBindings import bindings.Group as GroupBindings
interface Group { interface Group {
...@@ -7,7 +9,7 @@ interface Group { ...@@ -7,7 +9,7 @@ interface Group {
val createdNano: Long val createdNano: Long
val id: ByteArray val id: ByteArray
val initMessage: ByteArray val initMessage: ByteArray
val membership:ByteArray val membership: List<GroupMember>
val name: ByteArray val name: ByteArray
val serialize: ByteArray val serialize: ByteArray
} }
...@@ -23,8 +25,8 @@ open class GroupAdapter( ...@@ -23,8 +25,8 @@ open class GroupAdapter(
get() = group.id get() = group.id
override val initMessage: ByteArray override val initMessage: ByteArray
get() = group.initMessage get() = group.initMessage
override val membership: ByteArray override val membership: List<GroupMember>
get() = group.membership get() = decodeArray(group.membership)
override val name: ByteArray override val name: ByteArray
get() = group.name get() = group.name
override val serialize: ByteArray override val serialize: ByteArray
......
package io.elixxir.xxclient.models
import io.elixxir.xxclient.utils.Payload
import io.elixxir.xxclient.utils.UserId
data class GroupChatMessage(
val groupId: ByteArray,
val senderId: UserId,
val messageId: ByteArray,
val payload: Payload,
val timestamp: Long
) : BindingsModel
\ No newline at end of file
package io.elixxir.xxclient.models
data class GroupMember(
val id: ByteArray,
val dhKey: DHKey
) : BindingsModel
data class DHKey(
val value: String,
val fingerprint: Int
) : BindingsModel
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment