commit 3b6c99a8ba3236c569327cbf82e59ef22e054461
parent 5498f8206dff28f865f8824ad3caf6c162531a54
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date: Sun, 21 Jan 2024 12:05:25 +0100
feat(core/notifications): ignore typing notifications
Diffstat:
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/messaging/Notifications.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/messaging/Notifications.kt
@@ -415,7 +415,7 @@ class Notifications : Feature("Notifications", loadParams = FeatureLoadParams.IN
val serverMessageId = extras.getString("message_id") ?: return@hook
val notificationType = extras.getString("notification_type")?.lowercase() ?: return@hook
if (!betterNotificationFilter.contains("chat_preview") && !betterNotificationFilter.contains("media_preview")) return@hook
-
+ if (notificationType == "typing") return@hook
param.setResult(null)
val conversationManager = context.feature(Messaging::class).conversationManager ?: return@hook
diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/wrapper/impl/ConversationManager.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/wrapper/impl/ConversationManager.kt
@@ -3,6 +3,7 @@ package me.rhunk.snapenhance.core.wrapper.impl
import me.rhunk.snapenhance.common.data.MessageUpdate
import me.rhunk.snapenhance.core.ModContext
import me.rhunk.snapenhance.core.util.CallbackBuilder
+import me.rhunk.snapenhance.core.util.dataBuilder
import me.rhunk.snapenhance.core.util.ktx.getObjectField
import me.rhunk.snapenhance.core.util.ktx.setObjectField
import me.rhunk.snapenhance.core.wrapper.AbstractWrapper
@@ -102,9 +103,9 @@ class ConversationManager(
}
fun fetchMessageByServerId(conversationId: String, serverMessageId: Long, onSuccess: (Message) -> Unit, onError: (error: String) -> Unit) {
- val serverMessageIdentifier = CallbackBuilder.createEmptyObject(context.classCache.serverMessageIdentifier.constructors.first())?.apply {
- setObjectField("mServerConversationId", conversationId.toSnapUUID().instanceNonNull())
- setObjectField("mServerMessageId", serverMessageId)
+ val serverMessageIdentifier = context.classCache.serverMessageIdentifier.dataBuilder {
+ set("mServerConversationId", conversationId.toSnapUUID().instanceNonNull())
+ set("mServerMessageId", serverMessageId)
}
fetchMessageByServerId.invoke(