From 2bc9c14049472a6b4f6dbbe8c4a79f0529e89ba3 Mon Sep 17 00:00:00 2001 From: rhunk <101876869+rhunk@users.noreply.github.com> Date: Sat, 20 May 2023 00:33:56 +0200 Subject: [PATCH] fix(messagelogger): optimize performance --- .../snapenhance/features/impl/spy/MessageLogger.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt index b5d6b5da..6207c7ae 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt @@ -66,9 +66,15 @@ class MessageLogger : Feature("MessageLogger", loadParams = FeatureLoadParams.IN } if (!messageCache.containsKey(messageId)) { - val serializedMessage = context.gson.toJson(message.instanceNonNull()) - messageCache[messageId] = serializedMessage - context.bridgeClient.addMessageLoggerMessage(messageId, serializedMessage.toByteArray(Charsets.UTF_8)) + context.executeAsync { + val storedMessage = context.bridgeClient.getMessageLoggerMessage(messageId)?.toString(Charsets.UTF_8) + if (storedMessage == null) { + messageCache[messageId] = context.gson.toJson(message.instanceNonNull()) + context.bridgeClient.addMessageLoggerMessage(messageId, messageCache[messageId]!!.toByteArray(Charsets.UTF_8)) + return@executeAsync + } + messageCache[messageId] = storedMessage + } } } }