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:
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(