feat(core): bypass message action restrictions

This commit is contained in:
rhunk
2024-03-17 13:14:03 +01:00
parent aa936cb5ae
commit 5d35550cc5
4 changed files with 23 additions and 0 deletions

View File

@@ -466,6 +466,10 @@
"name": "Bypass Message Retention Policy",
"description": "Prevents messages from being deleted after viewing them"
},
"bypass_message_action_restrictions": {
"name": "Bypass Message Action Restrictions",
"description": "Allows you to react to a snap without having opened it or to save an unsaveable message"
},
"remove_groups_locked_status": {
"name": "Remove Groups Locked Status",
"description": "Allows you to view group information after being kicked"

View File

@@ -80,5 +80,6 @@ class MessagingTweaks : ConfigContainer() {
val galleryMediaSendOverride = boolean("gallery_media_send_override") { nativeHooks() }
val stripMediaMetadata = multiple("strip_media_metadata", "hide_caption_text", "hide_snap_filters", "hide_extras", "remove_audio_note_duration", "remove_audio_note_transcript_capability") { requireRestart() }
val bypassMessageRetentionPolicy = boolean("bypass_message_retention_policy") { addNotices(FeatureNotice.UNSTABLE); requireRestart() }
val bypassMessageActionRestrictions = boolean("bypass_message_action_restrictions") { requireRestart() }
val removeGroupsLockedStatus = boolean("remove_groups_locked_status") { requireRestart() }
}

View File

@@ -123,6 +123,7 @@ class FeatureManager(
DisableMemoriesSnapFeed(),
AccountSwitcher(),
RemoveGroupsLockedStatus(),
BypassMessageActionRestrictions(),
)
initializeFeatures()

View File

@@ -0,0 +1,17 @@
package me.rhunk.snapenhance.core.features.impl.messaging
import me.rhunk.snapenhance.core.event.events.impl.BuildMessageEvent
import me.rhunk.snapenhance.core.features.Feature
import me.rhunk.snapenhance.core.features.FeatureLoadParams
class BypassMessageActionRestrictions : Feature("Bypass Message Action Restrictions", loadParams = FeatureLoadParams.ACTIVITY_CREATE_SYNC) {
override fun onActivityCreate() {
if (!context.config.messaging.bypassMessageActionRestrictions.get()) return
context.event.subscribe(BuildMessageEvent::class, priority = 102) { event ->
event.message.messageMetadata?.apply {
isSaveable = true
isReactable = true
}
}
}
}