feat: unsaveable messages

- fix(auto_save): prevent saving unsaveable messages
This commit is contained in:
rhunk
2023-12-23 01:08:36 +01:00
parent 699da49743
commit cac0ccffc7
8 changed files with 70 additions and 10 deletions

View File

@ -97,6 +97,14 @@
"whitelist": "Auto save"
}
},
"unsaveable_messages": {
"name": "Unsaveable Messages",
"description": "Prevents messages from being saved in chat by other people",
"options": {
"blacklist": "Exclude from Unsaveable Messages",
"whitelist": "Unsaveable Messages"
}
},
"hide_friend_feed": {
"name": "Hide from Friend Feed"
},
@ -719,6 +727,7 @@
"friend_feed_menu_buttons": {
"auto_download": "\u2B07\uFE0F Auto Download",
"auto_save": "\uD83D\uDCAC Auto Save Messages",
"unsaveable_messages": "\u2B07\uFE0F Unsaveable Messages",
"stealth": "\uD83D\uDC7B Stealth Mode",
"mark_snaps_as_seen": "\uD83D\uDC40 Mark Snaps as seen",
"mark_stories_as_seen_locally": "\uD83D\uDC40 Mark Stories as seen locally",

View File

@ -18,8 +18,9 @@ class Rules : ConfigContainer() {
rules[ruleType] = unique(ruleType.key,"whitelist", "blacklist") {
customTranslationPath = "rules.properties.${ruleType.key}"
customOptionTranslationPath = "rules.modes"
addNotices(*ruleType.configNotices)
}.apply {
set("whitelist")
set(ruleType.defaultValue)
}
}
}

View File

@ -1,5 +1,6 @@
package me.rhunk.snapenhance.common.data
import me.rhunk.snapenhance.common.config.FeatureNotice
import me.rhunk.snapenhance.common.util.SerializableDataObject
@ -29,11 +30,14 @@ enum class SocialScope(
enum class MessagingRuleType(
val key: String,
val listMode: Boolean,
val showInFriendMenu: Boolean = true
val showInFriendMenu: Boolean = true,
val defaultValue: String? = "whitelist",
val configNotices: Array<FeatureNotice> = emptyArray()
) {
STEALTH("stealth", true),
AUTO_DOWNLOAD("auto_download", true),
AUTO_SAVE("auto_save", true),
AUTO_SAVE("auto_save", true, defaultValue = "blacklist"),
UNSAVEABLE_MESSAGES("unsaveable_messages", true, configNotices = arrayOf(FeatureNotice.REQUIRE_NATIVE_HOOKS), defaultValue = null),
HIDE_FRIEND_FEED("hide_friend_feed", false, showInFriendMenu = false),
E2E_ENCRYPTION("e2e_encryption", false),
PIN_CONVERSATION("pin_conversation", false, showInFriendMenu = false);