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>
This commit is contained in:
rhunk
2025-07-31 16:31:12 +02:00
parent 3170809666
commit ca01565d68
4 changed files with 1 additions and 95 deletions

View File

@@ -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"]

View File

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