commit f7ba23fd8007931867bc940886f663943885eafe parent dabbb1488a826f0f80e58b991a2aa2eae615bd6f Author: rhunk <101876869+rhunk@users.noreply.github.com> Date: Fri, 26 May 2023 16:56:38 +0200 fix: message logger improvement + action Diffstat:
4 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/app/src/main/assets/lang/en_US.json b/app/src/main/assets/lang/en_US.json @@ -11,7 +11,8 @@ }, "action": { - "clean_cache": "Clean Cache" + "clean_cache": "Clean Cache", + "clear_message_logger": "Clear Message Logger" }, "property": { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/action/impl/ClearMessageLogger.kt b/app/src/main/kotlin/me/rhunk/snapenhance/action/impl/ClearMessageLogger.kt @@ -0,0 +1,10 @@ +package me.rhunk.snapenhance.action.impl + +import me.rhunk.snapenhance.action.AbstractAction + +class ClearMessageLogger : AbstractAction("action.clear_message_logger") { + override fun run() { + context.bridgeClient.clearMessageLogger() + context.shortToast("Message logger cleared") + } +}+ \ No newline at end of file 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 @@ -13,6 +13,7 @@ import me.rhunk.snapenhance.hook.Hooker class MessageLogger : Feature("MessageLogger", loadParams = FeatureLoadParams.INIT_SYNC or FeatureLoadParams.ACTIVITY_CREATE_SYNC) { private val messageCache = mutableMapOf<Long, String>() private val removedMessages = linkedSetOf<Long>() + private val myUserId by lazy { context.database.getMyUserId() } fun isMessageRemoved(messageId: Long) = removedMessages.contains(messageId) @@ -34,6 +35,7 @@ class MessageLogger : Feature("MessageLogger", loadParams = FeatureLoadParams.IN if (messageState != MessageState.COMMITTED) return@hookConstructor + if (contentType == ContentType.STATUS) { //query the deleted message val deletedMessage: String = if (messageCache.containsKey(messageId)) messageCache[messageId] else { @@ -65,6 +67,9 @@ class MessageLogger : Feature("MessageLogger", loadParams = FeatureLoadParams.IN return@hookConstructor } + //exclude messages sent by me + if (message.senderId.toString() == myUserId) return@hookConstructor + if (!messageCache.containsKey(messageId)) { context.executeAsync { val storedMessage = context.bridgeClient.getMessageLoggerMessage(messageId)?.toString(Charsets.UTF_8) diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/impl/ActionManager.kt b/app/src/main/kotlin/me/rhunk/snapenhance/manager/impl/ActionManager.kt @@ -3,6 +3,7 @@ package me.rhunk.snapenhance.manager.impl import me.rhunk.snapenhance.ModContext import me.rhunk.snapenhance.action.AbstractAction import me.rhunk.snapenhance.action.impl.CleanCache +import me.rhunk.snapenhance.action.impl.ClearMessageLogger import me.rhunk.snapenhance.manager.Manager import kotlin.reflect.KClass @@ -18,6 +19,7 @@ class ActionManager( } override fun init() { load(CleanCache::class) + load(ClearMessageLogger::class) actions.values.forEach(AbstractAction::init) }