fix: issue where messages don't get deleted
Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
parent
f9b778e3c4
commit
1e6ded84ed
|
|
@ -13,6 +13,7 @@ import chat.revolt.api.realtime.frames.receivable.ChannelStartTypingFrame
|
||||||
import chat.revolt.api.realtime.frames.receivable.ChannelStopTypingFrame
|
import chat.revolt.api.realtime.frames.receivable.ChannelStopTypingFrame
|
||||||
import chat.revolt.api.realtime.frames.receivable.ChannelUpdateFrame
|
import chat.revolt.api.realtime.frames.receivable.ChannelUpdateFrame
|
||||||
import chat.revolt.api.realtime.frames.receivable.MessageAppendFrame
|
import chat.revolt.api.realtime.frames.receivable.MessageAppendFrame
|
||||||
|
import chat.revolt.api.realtime.frames.receivable.MessageDeleteFrame
|
||||||
import chat.revolt.api.realtime.frames.receivable.MessageFrame
|
import chat.revolt.api.realtime.frames.receivable.MessageFrame
|
||||||
import chat.revolt.api.realtime.frames.receivable.MessageReactFrame
|
import chat.revolt.api.realtime.frames.receivable.MessageReactFrame
|
||||||
import chat.revolt.api.realtime.frames.receivable.MessageUpdateFrame
|
import chat.revolt.api.realtime.frames.receivable.MessageUpdateFrame
|
||||||
|
|
@ -256,6 +257,27 @@ object RealtimeSocket {
|
||||||
RevoltAPI.wsFrameChannel.send(messageUpdateFrame)
|
RevoltAPI.wsFrameChannel.send(messageUpdateFrame)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"MessageDelete" -> {
|
||||||
|
val messageDeleteFrame =
|
||||||
|
RevoltJson.decodeFromString(MessageDeleteFrame.serializer(), rawFrame)
|
||||||
|
Log.d(
|
||||||
|
"RealtimeSocket",
|
||||||
|
"Received message react frame for ${messageDeleteFrame.id}."
|
||||||
|
)
|
||||||
|
|
||||||
|
val message = RevoltAPI.messageCache[messageDeleteFrame.id]
|
||||||
|
if (message == null) {
|
||||||
|
Log.d(
|
||||||
|
"RealtimeSocket",
|
||||||
|
"Message ${messageDeleteFrame.id} not found in cache. Will not delete."
|
||||||
|
)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
RevoltAPI.messageCache.remove(messageDeleteFrame.id)
|
||||||
|
RevoltAPI.wsFrameChannel.send(messageDeleteFrame)
|
||||||
|
}
|
||||||
|
|
||||||
"MessageReact" -> {
|
"MessageReact" -> {
|
||||||
val messageReactFrame =
|
val messageReactFrame =
|
||||||
RevoltJson.decodeFromString(MessageReactFrame.serializer(), rawFrame)
|
RevoltJson.decodeFromString(MessageReactFrame.serializer(), rawFrame)
|
||||||
|
|
|
||||||
|
|
@ -403,6 +403,10 @@ class ChannelScreenViewModel : ViewModel() {
|
||||||
val newRenderableMessages = renderableMessages.filter { currentMsg ->
|
val newRenderableMessages = renderableMessages.filter { currentMsg ->
|
||||||
currentMsg.id != it.id
|
currentMsg.id != it.id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderableMessages.clear()
|
||||||
|
renderableMessages.addAll(newRenderableMessages)
|
||||||
|
|
||||||
regroupMessages(newRenderableMessages)
|
regroupMessages(newRenderableMessages)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue