commit 7b44d07b0eec9580aef5c3edf6a40423ad16d4a2 parent 2f01498d3a5f5332fe320cba4cc3af91d5e0ff42 Author: t3sserakt <t3ss@posteo.de> Date: Wed, 16 Apr 2025 09:47:52 +0200 Added interfacce functions for one to one chat. Diffstat:
9 files changed, 70 insertions(+), 3 deletions(-)
diff --git a/GNUnetMessenger/.idea/misc.xml b/GNUnetMessenger/.idea/misc.xml @@ -1,4 +1,3 @@ -<?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK"> diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatContact.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatContact.kt @@ -0,0 +1,7 @@ +package org.gnunet.gnunetmessenger.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class ChatContact(val chatContext: ChatContext) : Parcelable diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatContext.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatContext.kt @@ -1,5 +1,7 @@ package org.gnunet.gnunetmessenger.model -class ChatContext { +import android.os.Parcelable +import kotlinx.parcelize.Parcelize -} +@Parcelize +data class ChatContext (val chatContextType: ChatContextType): Parcelable diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatContextType.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatContextType.kt @@ -0,0 +1,5 @@ +package org.gnunet.gnunetmessenger.model + +enum class ChatContextType { + CONTACT, GROUP, UNKNOWN +} +\ No newline at end of file diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatGroup.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatGroup.kt @@ -0,0 +1,9 @@ +package org.gnunet.gnunetmessenger.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class ChatGroup ( + val chatContext: ChatContext +): Parcelable +\ No newline at end of file diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatUri.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/model/ChatUri.kt @@ -0,0 +1,9 @@ +package org.gnunet.gnunetmessenger.model + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class ChatUri ( + val error: String +) : Parcelable +\ No newline at end of file diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/service/GnunetChat.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/service/GnunetChat.kt @@ -2,10 +2,14 @@ package org.gnunet.gnunetmessenger.service import org.gnunet.gnunetmessenger.model.ChatAccount +import org.gnunet.gnunetmessenger.model.ChatContact import org.gnunet.gnunetmessenger.model.ChatContext +import org.gnunet.gnunetmessenger.model.ChatGroup import org.gnunet.gnunetmessenger.model.ChatHandle import org.gnunet.gnunetmessenger.model.ChatMessage +import org.gnunet.gnunetmessenger.model.ChatUri import org.gnunet.gnunetmessenger.model.GnunetReturnValue +import org.gnunet.gnunetmessenger.model.MessageKind import org.gnunet.gnunetmessenger.model.MessengerApp interface GnunetChat { @@ -20,4 +24,19 @@ interface GnunetChat { fun setAttribute(handle: ChatHandle,key: String, value: String) fun getAttributes(handle: ChatHandle, callback: (String, String) -> Unit) fun lobbyOpen(handle: ChatHandle, callback: (String) -> Unit) + fun lobbyJoin(handle: ChatHandle, uri: String) + fun setGroupName(group: ChatGroup, name: String) + fun createGroup(handle: ChatHandle, topic: String) + fun parseUri(uri: String): ChatUri + fun destroyUri(uri: ChatUri) + fun inviteContactToGroup(group: ChatGroup, contact: ChatContact) + fun getUserPointerForContext(context: ChatContext) : String + fun getSenderFromMessage(message: ChatMessage) : ChatContact + fun getGroupFromContext(context: ChatContext): ChatGroup + fun getMessageForGroupContact(group: ChatGroup, contact: ChatContact) : ChatMessage + fun getMessageKind(message: ChatMessage) : MessageKind + fun isMessageRecent(message: ChatMessage) : GnunetReturnValue + fun getMessageTimestamp(message: ChatMessage) : Long + fun setMessageForGroupContact(group: ChatGroup, contact: ChatContact, message: ChatMessage) + } \ No newline at end of file diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/service/boundimpl/GnunetChatBoundService.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/service/boundimpl/GnunetChatBoundService.kt @@ -56,4 +56,11 @@ class GnunetChatBoundService : GnunetChat { override fun lobbyOpen(handle: ChatHandle, callback: (String) -> Unit) { TODO("Not yet implemented") } + + override fun lobbyJoin( + handle: ChatHandle, + uri: String + ) { + TODO("Not yet implemented") + } } \ No newline at end of file diff --git a/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/service/mock/GnunetChatMock.kt b/GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/service/mock/GnunetChatMock.kt @@ -74,4 +74,11 @@ class GnunetChatMock : GnunetChat { override fun lobbyOpen(handle: ChatHandle, callback: (String) -> Unit) { callback("000G006K2TJNMD9VTCYRX7BRVV3HAEPS15E6NHDXKPJA1KAJJEG9AFF884") } + + override fun lobbyJoin( + handle: ChatHandle, + uri: String + ) { + TODO("Not yet implemented") + } } \ No newline at end of file