GnunetChat.kt (4160B)
1 package org.gnunet.gnunetmessenger.service 2 3 import org.gnunet.gnunetmessenger.model.ChatAccount 4 import org.gnunet.gnunetmessenger.model.ChatContact 5 import org.gnunet.gnunetmessenger.model.ChatContext 6 import org.gnunet.gnunetmessenger.model.ChatGroup 7 import org.gnunet.gnunetmessenger.model.ChatHandle 8 import org.gnunet.gnunetmessenger.model.ChatMessage 9 import org.gnunet.gnunetmessenger.model.ChatUri 10 import org.gnunet.gnunetmessenger.model.GnunetReturnValue 11 import org.gnunet.gnunetmessenger.model.MessageKind 12 import org.gnunet.gnunetmessenger.model.MessengerApp 13 14 interface GnunetChat { 15 fun startChat( 16 messengerApp: MessengerApp, 17 callback: (ChatContext, ChatMessage) -> Unit 18 ): ChatHandle 19 20 suspend fun awaitReady(handle: ChatHandle) 21 22 suspend fun reset() 23 24 fun iterateAccounts(handle: ChatHandle, callback: (ChatAccount) -> Unit) 25 suspend fun listAccounts(handle: ChatHandle): List<ChatAccount> 26 27 suspend fun createAccount(handle: ChatHandle, name: String): GnunetReturnValue 28 suspend fun connect(handle: ChatHandle, account: ChatAccount) 29 suspend fun disconnect(handle: ChatHandle) 30 suspend fun stopChat(handle: ChatHandle) 31 suspend fun getProfileName(handle: ChatHandle): String 32 suspend fun setProfileName(handle: ChatHandle, name: String) 33 34 fun getProfileKey(handle: ChatHandle): String 35 fun isContactBlocked(contact: ChatContact): Boolean 36 fun setContactBlocked(contact: ChatContact, isBlocked: Boolean) 37 fun setAttribute(handle: ChatHandle, key: String, value: String) 38 fun getAttributes(handle: ChatHandle, callback: (String, String) -> Unit) 39 40 fun lobbyOpen(handle: ChatHandle, callback: (String) -> Unit) 41 suspend fun lobbyJoin(handle: ChatHandle, uri: String) 42 43 fun setGroupName(group: ChatGroup, name: String) 44 fun createGroup(handle: ChatHandle, topic: String): ChatGroup 45 46 fun parseUri(uri: String): ChatUri 47 fun destroyUri(uri: ChatUri) 48 49 fun inviteContactToGroup(group: ChatGroup, contact: ChatContact) 50 fun getUserPointerForContext(context: ChatContext): String? 51 fun setUserPointerForContext(context: ChatContext, userPointer: String) 52 53 fun getSenderFromMessage(message: ChatMessage): ChatContact 54 fun getGroupFromContext(context: ChatContext): ChatGroup? 55 fun getMessageForGroupContact(group: ChatGroup, contact: ChatContact): ChatMessage 56 fun getMessageKind(message: ChatMessage): MessageKind 57 fun isMessageRecent(message: ChatMessage): GnunetReturnValue 58 fun getMessageTimestamp(message: ChatMessage): Long 59 fun setMessageForGroupContact(group: ChatGroup, contact: ChatContact, message: ChatMessage) 60 61 fun iterateContacts(handle: ChatHandle, callback: (ChatContact) -> Int) 62 fun iterateGroups(handle: ChatHandle, callback: (ChatGroup) -> Int) 63 suspend fun listContacts(handle: ChatHandle): List<ChatContact> 64 suspend fun listGroups(handle: ChatHandle): List<ChatGroup> 65 66 fun getContactContext(chatContact: ChatContact): ChatContext 67 fun getGroupContext(chatGroup: ChatGroup): ChatContext 68 fun getContactUserPointer(chatContact: ChatContact): String 69 fun setContactUserPointer(chatContact: ChatContact, userPointer: String) 70 fun getGroupUserPointer(chatGroup: ChatGroup): String 71 fun setGroupUserPointer(chatGroup: ChatGroup, userPointer: String) 72 73 fun sendText(chatContext: ChatContext, text: String) 74 fun getContactKey(chatContact: ChatContact): String 75 fun getContextContact(context: ChatContext): ChatContact 76 fun deleteContact(chatContact: ChatContact) 77 fun isGroup(context: ChatContext): Boolean 78 fun isPlatform(context: ChatContext): Boolean 79 80 fun iterateGroupContacts(chatGroup: ChatGroup, callback: (ChatGroup, ChatContact) -> Int) 81 suspend fun listGroupContacts(group: ChatGroup): List<ChatContact> 82 83 fun randomUUID(): String 84 fun getContactAttributes(contact: ChatContact, callback: (String, String) -> Unit) 85 fun shareAttributes(handle: ChatHandle, contact: ChatContact, key: String) 86 fun unshareAttributes(handle: ChatHandle, contact: ChatContact, key: String) 87 88 suspend fun iterateContextMessages(context: ChatContext): List<ChatMessage> 89 }