commit c0740877fa7fe5f2e830f6343a3b9175acbcd5f8
parent 82a3847573d66dc26912ededc9cfcd1f70971279
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Tue, 21 Nov 2023 19:29:08 +0100

feat: localized content types

Diffstat:
Mapp/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/social/MessagingPreview.kt | 3++-
Mcommon/src/main/assets/lang/en_US.json | 7-------
Mcommon/src/main/kotlin/me/rhunk/snapenhance/common/bridge/wrapper/LocaleWrapper.kt | 1+
Mcommon/src/main/kotlin/me/rhunk/snapenhance/common/config/impl/MessagingTweaks.kt | 2+-
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/FriendFeedInfoMenu.kt | 5++---
5 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/social/MessagingPreview.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/social/MessagingPreview.kt @@ -49,6 +49,7 @@ class MessagingPreview( private lateinit var messagingBridge: MessagingBridge private lateinit var previewScrollState: LazyListState private val myUserId by lazy { messagingBridge.myUserId } + private val contentTypeTranslation by lazy { context.translation.getCategory("content_type") } private var conversationId: String? = null private val messages = sortedMapOf<Long, Message>() // server message id => message @@ -385,7 +386,7 @@ class MessagingPreview( .padding(5.dp) ) { - Text("[$contentType] ${messageReader.getString(2, 1) ?: ""}") + Text("[${contentType?.let { contentTypeTranslation.getOrNull(it.name) ?: it.name } }] ${messageReader.getString(2, 1) ?: ""}") } } } diff --git a/common/src/main/assets/lang/en_US.json b/common/src/main/assets/lang/en_US.json @@ -672,13 +672,6 @@ "progress": "Progress", "failure": "Failure" }, - "auto_save_messages_in_conversations": { - "NOTE": "Audio Note", - "CHAT": "Chat", - "EXTERNAL_MEDIA": "External Media", - "SNAP": "Snap", - "STICKER": "Sticker" - }, "notifications": { "chat_screenshot": "Screenshot", "chat_screen_record": "Screen Record", diff --git a/common/src/main/kotlin/me/rhunk/snapenhance/common/bridge/wrapper/LocaleWrapper.kt b/common/src/main/kotlin/me/rhunk/snapenhance/common/bridge/wrapper/LocaleWrapper.kt @@ -80,6 +80,7 @@ class LocaleWrapper { } operator fun get(key: String) = translationMap[key] ?: key.also { AbstractLogger.directDebug("Missing translation for $key") } + fun getOrNull(key: String) = translationMap[key] fun format(key: String, vararg args: Pair<String, String>): String { return args.fold(get(key)) { acc, pair -> diff --git a/common/src/main/kotlin/me/rhunk/snapenhance/common/config/impl/MessagingTweaks.kt b/common/src/main/kotlin/me/rhunk/snapenhance/common/config/impl/MessagingTweaks.kt @@ -21,7 +21,7 @@ class MessagingTweaks : ConfigContainer() { "NOTE", "EXTERNAL_MEDIA", "STICKER" - ) { requireRestart() } + ) { requireRestart(); customOptionTranslationPath = "content_type" } val preventMessageSending = multiple("prevent_message_sending", *NotificationType.getOutgoingValues().map { it.key }.toTypedArray()) { customOptionTranslationPath = "features.options.notifications" nativeHooks() diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/FriendFeedInfoMenu.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/FriendFeedInfoMenu.kt @@ -161,6 +161,7 @@ class FriendFeedInfoMenu : AbstractMenu() { .associateBy { it.userId!! } val messageBuilder = StringBuilder() + val translation = context.translation.getCategory("content_type") messages.forEach { message -> val sender = participants[message.senderId] @@ -174,9 +175,7 @@ class FriendFeedInfoMenu : AbstractMenu() { val contentType = ContentType.fromMessageContainer(messageProtoReader) ?: ContentType.fromId(message.contentType) var messageString = if (contentType == ContentType.CHAT) { messageProtoReader.getString(2, 1) ?: return@forEach - } else { - contentType.name - } + } else translation.getOrNull(contentType.name) ?: contentType.name if (contentType == ContentType.SNAP) { messageString = "\uD83D\uDFE5" //red square