From ac4473a571ffa576c6310cbde7828c81fbffb79b Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Thu, 22 Feb 2024 23:48:08 -0500 Subject: [PATCH] WebXDC can only use encryption if there is no state update --- src/cheogram/java/com/cheogram/android/WebxdcPage.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cheogram/java/com/cheogram/android/WebxdcPage.java b/src/cheogram/java/com/cheogram/android/WebxdcPage.java index 88808523c83fd1bfbaa05c6ac286264ddf38ab98..a804f5f5d8c3c36e0ac34661045a3e7b43761284 100644 --- a/src/cheogram/java/com/cheogram/android/WebxdcPage.java +++ b/src/cheogram/java/com/cheogram/android/WebxdcPage.java @@ -374,7 +374,15 @@ public class WebxdcPage implements ConversationPage { Log.w(Config.LOGTAG, "WebxdcPage sendStatusUpdate invalid JSON: " + e); } String payload = null; - Message message = new Message(source.getConversation(), descr, source.getEncryption()); + int encryption = Message.ENCRYPTION_NONE; + if (!params.has("payload") && !params.has("document") && !params.has("summary")) { + if (source.getConversation() instanceof Conversation) { + encryption = ((Conversation) source.getConversation()).getNextEncryption(); + } else { + encryption = source.getEncryption(); + } + } + Message message = new Message(source.getConversation(), descr, encryption); message.addPayload(new Element("store", "urn:xmpp:hints")); Element webxdc = new Element("x", "urn:xmpp:webxdc:0"); message.addPayload(webxdc);