From adfe47b735833095244a69a4c505508d6206421a Mon Sep 17 00:00:00 2001
From: Kamal Bramwell <kamal@elixxir.io>
Date: Thu, 27 Oct 2022 12:50:55 -0400
Subject: [PATCH] Implemented newGroupChat Bindings method

---
 .../io/elixxir/xxclient/bindings/Bindings.kt     |  7 +++++++
 .../elixxir/xxclient/bindings/BindingsAdapter.kt | 16 ++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt b/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
index 29a9036..610ab5c 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
@@ -8,6 +8,7 @@ import io.elixxir.xxclient.cmix.CMix
 import io.elixxir.xxclient.dummytraffic.DummyTraffic
 import io.elixxir.xxclient.e2e.E2e
 import io.elixxir.xxclient.filetransfer.FileTransfer
+import io.elixxir.xxclient.groupchat.GroupChat
 import io.elixxir.xxclient.models.*
 import io.elixxir.xxclient.userdiscovery.UserDiscovery
 import io.elixxir.xxclient.utils.*
@@ -88,6 +89,12 @@ interface Bindings {
         randomRangeMS: Long
     ): DummyTraffic
 
+    fun newGroupChat(
+        e2eId: E2eId,
+        requestListener: GroupRequestListener,
+        messageListener: GroupMessageListener,
+    ): GroupChat
+
     fun registerLogger(logLevel: LogLevel, logWriter: LogWriter)
 
     fun initializeBackup(
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt b/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
index c51617e..06d1ecc 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
@@ -1,5 +1,6 @@
 package io.elixxir.xxclient.bindings
 
+import bindings.GroupChatProcessor
 import io.elixxir.xxclient.backup.Backup
 import io.elixxir.xxclient.backup.BackupAdapter
 import io.elixxir.xxclient.callbacks.*
@@ -15,6 +16,8 @@ import io.elixxir.xxclient.e2e.E2e
 import io.elixxir.xxclient.e2e.E2eAdapter
 import io.elixxir.xxclient.filetransfer.FileTransfer
 import io.elixxir.xxclient.filetransfer.FileTransferAdapter
+import io.elixxir.xxclient.groupchat.GroupChat
+import io.elixxir.xxclient.groupchat.GroupChatAdapter
 import io.elixxir.xxclient.models.*
 import io.elixxir.xxclient.models.BindingsModel.Companion.decode
 import io.elixxir.xxclient.models.BindingsModel.Companion.encode
@@ -180,6 +183,19 @@ open class BindingsAdapter : Bindings {
         )
     }
 
+    override fun newGroupChat(
+        e2eId: E2eId,
+        requestListener: GroupRequestListener,
+        messageListener: GroupMessageListener,
+    ): GroupChat {
+        val groupChat = CoreBindings.newGroupChat(
+            e2eId,
+            GroupRequestAdapter(requestListener),
+            GroupChatProcessorAdapter(messageListener)
+        )
+        return GroupChatAdapter(groupChat)
+    }
+
     override fun registerLogger(logLevel: LogLevel, logWriter: LogWriter) {
         CoreBindings.logLevel(logLevel.code)
         CoreBindings.registerLogWriter(logWriter)
-- 
GitLab