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:
@@ -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"]
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user