commit ca01565d68beb81b3536e4d1952cc38b45151b51
parent 3170809666e2432346b90bbae63be4f7d3fb52d3
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Thu, 31 Jul 2025 16:31:12 +0200

refactor(core): remove edit message feature
It's now implemented for everyone in newer versions

Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>

Diffstat:
Mcommon/src/main/assets/lang/en_US.json | 7+------
Mcommon/src/main/kotlin/me/rhunk/snapenhance/common/config/impl/Experimental.kt | 1-
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/ChatActionMenu.kt | 9---------
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/NewChatActionMenu.kt | 79-------------------------------------------------------------------------------
4 files changed, 1 insertion(+), 95 deletions(-)

diff --git a/common/src/main/assets/lang/en_US.json b/common/src/main/assets/lang/en_US.json @@ -1071,10 +1071,6 @@ "name": "COF Experiments", "description": "Enables unreleased/beta Snapchat features" }, - "edit_message": { - "name": "Edit Messages", - "description": "Allows you to edit messages in conversations" - }, "context_menu_fix": { "name": "Context Menu Fix", "description": "Attempt to repair the Friend Feed Menu as when the device is offline it cannot be displayed correctly" @@ -1440,8 +1436,7 @@ "download_button": "Download", "delete_logged_message_button": "Delete Logged Message", "show_chat_edit_history": "Show Chat Edit History", - "convert_message": "Convert Message", - "edit_message": "Edit Message" + "convert_message": "Convert Message" }, "opera_context_menu": { diff --git a/common/src/main/kotlin/me/rhunk/snapenhance/common/config/impl/Experimental.kt b/common/src/main/kotlin/me/rhunk/snapenhance/common/config/impl/Experimental.kt @@ -71,7 +71,6 @@ class Experimental : ConfigContainer() { val betterTranscript = container("better_transcript", BetterTranscriptConfig()) { requireRestart() } val voiceNoteAutoPlay = boolean("voice_note_auto_play") { requireRestart() } val friendNotes = boolean("friend_notes") { requireRestart() } - val editMessage = boolean("edit_message") { requireRestart() } val contextMenuFix = boolean("context_menu_fix") { requireRestart() } val cofExperiments = multiple("cof_experiments", *cofExperimentList.toTypedArray()) { requireRestart(); addFlags(ConfigFlag.NO_TRANSLATE); addNotices(FeatureNotice.UNSTABLE) } val appLock = container("app_lock", AppLockConfig()) { requireRestart(); addNotices(FeatureNotice.UNSTABLE) } diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/ChatActionMenu.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/ChatActionMenu.kt @@ -185,15 +185,6 @@ class ChatActionMenu : AbstractMenu() { }) } - if (context.config.experimental.editMessage.get() && messaging.conversationManager?.isEditMessageSupported() == true) { - injectButton(Button(viewGroup.context).apply button@{ - text = this@ChatActionMenu.context.translation["chat_action_menu.edit_message"] - setOnClickListener { - menuViewInjector.menu(NewChatActionMenu::class)?.editCurrentMessage(context, closeActionMenu) - } - }) - } - if (context.config.experimental.convertMessageLocally.get()) { injectButton(Button(viewGroup.context).apply { text = this@ChatActionMenu.context.translation["chat_action_menu.convert_message"] diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/NewChatActionMenu.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/NewChatActionMenu.kt @@ -3,7 +3,6 @@ package me.rhunk.snapenhance.core.ui.menu.impl import android.content.Context import android.text.format.Formatter import android.view.ViewGroup -import android.widget.EditText import android.widget.LinearLayout import android.widget.ScrollView import androidx.compose.foundation.border @@ -29,8 +28,6 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch import me.rhunk.snapenhance.bridge.logger.LoggedChatEdit import me.rhunk.snapenhance.common.data.ContentType import me.rhunk.snapenhance.common.ui.createComposeAlertDialog @@ -38,7 +35,6 @@ import me.rhunk.snapenhance.common.ui.createComposeView import me.rhunk.snapenhance.common.ui.rememberAsyncMutableState import me.rhunk.snapenhance.common.util.ktx.copyToClipboard import me.rhunk.snapenhance.common.util.protobuf.ProtoReader -import me.rhunk.snapenhance.common.util.protobuf.ProtoWriter import me.rhunk.snapenhance.common.util.snap.RemoteMediaResolver import me.rhunk.snapenhance.core.event.events.impl.AddViewEvent import me.rhunk.snapenhance.core.features.impl.downloader.MediaDownloader @@ -100,71 +96,6 @@ class NewChatActionMenu : AbstractMenu() { }.show() } - fun editCurrentMessage( - localContext: Context, - dismissActionMenu: () -> Unit, - ) { - val messaging = context.feature(Messaging::class) - messaging.conversationManager?.fetchMessage( - messaging.openedConversationUUID.toString(), - messaging.lastFocusedMessageId, - onSuccess = onSuccess@{ message -> - dismissActionMenu() - if (message.senderId.toString() != context.database.myUserId) { - context.shortToast("You can only edit your own messages") - return@onSuccess - } - - val editText = EditText(localContext).apply { - setText(ProtoReader(message.messageContent?.content ?: return@apply).getString(2, 1) ?: run { - this@NewChatActionMenu.context.shortToast("You can only edit text messages") - return@onSuccess - }) - setTextColor(resources.getColor(android.R.color.white, context.theme)) - postDelayed({ - requestFocus() - setSelection(text.length) - context.getSystemService(android.content.Context.INPUT_METHOD_SERVICE) - .let { it as android.view.inputmethod.InputMethodManager } - .showSoftInput(this, android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT) - }, 200) - } - - context.runOnUiThread { - ViewAppearanceHelper.newAlertDialogBuilder(context.mainActivity!!) - .setPositiveButton("Save") { _, _ -> - val newMessageContent = ProtoWriter().apply { - from(2) { addString(1, editText.text.toString()) } - }.toByteArray() - message.messageContent?.content = newMessageContent - messaging.conversationManager?.editMessage( - message.messageDescriptor?.conversationId.toString(), - message.messageDescriptor?.messageId ?: return@setPositiveButton, - newMessageContent, - onSuccess = { - context.coroutineScope.launch(Dispatchers.Main) { - message.messageMetadata?.isEdited = true - messaging.localUpdateMessage( - message.messageDescriptor?.conversationId.toString(), - message, - forceUpdate = true - ) - } - }, - onError = { - context.shortToast("Failed to edit message: $it") - } - ) - } - .setNegativeButton("Cancel") { dialog, _ -> dialog.dismiss() } - .setView(editText) - .setTitle("Edit message content") - .show() - } - } - ) - } - private val lastFocusedMessage get() = context.database.getConversationMessageFromId(context.feature(Messaging::class).lastFocusedMessageId) @@ -353,16 +284,6 @@ class NewChatActionMenu : AbstractMenu() { }) } - if (context.config.experimental.editMessage.get() && messaging.conversationManager?.isEditMessageSupported() == true) { - ListButton(icon = Icons.Outlined.Edit, text = context.translation["chat_action_menu.edit_message"], modifier = Modifier.clickable { - editCurrentMessage(event.view.context) { - context.runOnUiThread { - closeActionMenu() - } - } - }) - } - if (context.config.messaging.messageLogger.globalState == true) { val chatEdits by rememberAsyncMutableState(defaultValue = null) { context.feature(MessageLogger::class).getChatEdits(