From 8cf7602abd624a24443f8f36d6fa7dd51b22217a Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 23 May 2025 12:51:46 -0400 Subject: [PATCH] Added a method to KaonicCommunicationManager to send files as bytes --- .../KaonicCommunicationManager.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kaonic-plugin/src/main/java/network/beechat/kaonic/communication/KaonicCommunicationManager.java b/kaonic-plugin/src/main/java/network/beechat/kaonic/communication/KaonicCommunicationManager.java index 8253442..9c71ffc 100644 --- a/kaonic-plugin/src/main/java/network/beechat/kaonic/communication/KaonicCommunicationManager.java +++ b/kaonic-plugin/src/main/java/network/beechat/kaonic/communication/KaonicCommunicationManager.java @@ -163,6 +163,22 @@ public void sendFile(String filePath, String address, String chatId) { } } + public void sendFile(byte[] fileBytes, String fileName, String address, String chatId) { + String fileId = UUID.randomUUID().toString(); + MessageFileStartEvent messageFileStartEvent = new MessageFileStartEvent(address, System.currentTimeMillis(), fileId, chatId, fileName, fileBytes.length); + + try { + KaonicEvent kaonicEvent = new KaonicEvent<>(KaonicEventType.MESSAGE_FILE_START, + messageFileStartEvent); + transmitFile(kaonicEvent); + + onEventReceived(objectMapper.writeValueAsString(new KaonicEvent<>(KaonicEventType.MESSAGE_FILE, + new MessageFileEvent(address, System.currentTimeMillis(), fileId, chatId, fileName, fileBytes.length)))); + } catch (JsonProcessingException e) { + Log.e(TAG, "Failed to send " + fileName, e); + } + } + public void sendBroadcast(String id, String topic, byte[] data) { kaonicLib.sendBroadcast(id, topic, data); }