commit 31feea3d85e56dc5541c09d0da5b13eea7e912be parent 9761d73ece7a5c35abde08c7a2fb39e321a6528c Author: rhunk <101876869+rhunk@users.noreply.github.com> Date: Thu, 10 Apr 2025 22:16:06 +0200 feat(core): exclude from message logger Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com> Diffstat:
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/common/src/main/assets/lang/en_US.json b/common/src/main/assets/lang/en_US.json @@ -285,6 +285,9 @@ }, "pin_conversation": { "name": "Pin Conversation" + }, + "exclude_message_logger": { + "name": "Exclude From Message Logger" } } }, diff --git a/common/src/main/kotlin/me/rhunk/snapenhance/common/data/MessagingCoreObjects.kt b/common/src/main/kotlin/me/rhunk/snapenhance/common/data/MessagingCoreObjects.kt @@ -3,6 +3,7 @@ package me.rhunk.snapenhance.common.data import android.database.Cursor import android.os.Parcelable import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.Message import androidx.compose.material.icons.outlined.* import androidx.compose.ui.graphics.vector.ImageVector import kotlinx.parcelize.Parcelize @@ -53,7 +54,8 @@ enum class MessagingRuleType( UNSAVEABLE_MESSAGES("unsaveable_messages", true, Icons.Outlined.FolderOff, defaultValue = null), HIDE_FRIEND_FEED("hide_friend_feed", false, Icons.Outlined.VisibilityOff, showInFriendMenu = false), E2E_ENCRYPTION("e2e_encryption", false, Icons.Outlined.Lock), - PIN_CONVERSATION("pin_conversation", false, Icons.Outlined.PushPin, showInFriendMenu = false); + PIN_CONVERSATION("pin_conversation", false, Icons.Outlined.PushPin, showInFriendMenu = false), + EXCLUDE_MESSAGE_LOGGER("exclude_message_logger", false, Icons.AutoMirrored.Filled.Message, showInFriendMenu = false); fun translateOptionKey(optionKey: String): String { return if (listMode) "rules.properties.$key.options.$optionKey" else "rules.properties.$key.name" diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/spying/MessageLogger.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/spying/MessageLogger.kt @@ -12,20 +12,22 @@ import me.rhunk.snapenhance.bridge.logger.LoggedChatEdit import me.rhunk.snapenhance.common.config.impl.MessagingTweaks import me.rhunk.snapenhance.common.data.ContentType import me.rhunk.snapenhance.common.data.MessageState +import me.rhunk.snapenhance.common.data.MessagingRuleType import me.rhunk.snapenhance.common.data.QuotedMessageContentStatus +import me.rhunk.snapenhance.common.data.RuleState import me.rhunk.snapenhance.common.util.ktx.longHashCode import me.rhunk.snapenhance.common.util.lazyBridge import me.rhunk.snapenhance.common.util.protobuf.ProtoReader import me.rhunk.snapenhance.core.event.events.impl.BindViewEvent import me.rhunk.snapenhance.core.event.events.impl.BuildMessageEvent -import me.rhunk.snapenhance.core.features.Feature +import me.rhunk.snapenhance.core.features.MessagingRuleFeature import me.rhunk.snapenhance.core.ui.addForegroundDrawable import me.rhunk.snapenhance.core.ui.removeForegroundDrawable import me.rhunk.snapenhance.core.util.EvictingMap import java.util.concurrent.Executors import kotlin.system.measureTimeMillis -class MessageLogger : Feature("MessageLogger") { +class MessageLogger : MessagingRuleFeature("MessageLogger", MessagingRuleType.EXCLUDE_MESSAGE_LOGGER) { companion object { const val PREFETCH_MESSAGE_COUNT = 20 const val PREFETCH_FEED_COUNT = 20 @@ -128,6 +130,11 @@ class MessageLogger : Feature("MessageLogger") { } threadPool.execute { + // ignore excluded conversations + if (getState(conversationId)) { + return@execute + } + try { loggerInterface.addMessage( BridgeLoggedMessage().also { @@ -144,7 +151,7 @@ class MessageLogger : Feature("MessageLogger") { it.messageData = context.gson.toJson(messageInstance).toByteArray(Charsets.UTF_8) } ) - } catch (ignored: DeadObjectException) {} + } catch (_: DeadObjectException) {} } return@subscribe @@ -193,4 +200,6 @@ class MessageLogger : Feature("MessageLogger") { } } } + + override fun getRuleState() = RuleState.WHITELIST } \ No newline at end of file