From 5724680c54272d837d7be0b6ace47a706f7eebba Mon Sep 17 00:00:00 2001 From: Infi Date: Fri, 11 Apr 2025 20:57:50 +0200 Subject: [PATCH] fix: websocket disconnect due to missing field used to crash because status was claimed to not be optional (when status = "None" is is however absent) Signed-off-by: Infi --- .../java/chat/revolt/api/realtime/RealtimeSocket.kt | 4 ++-- .../realtime/frames/receivable/ReceivableFrames.kt | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt b/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt index 064c8fb0..c31dd0c6 100644 --- a/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt +++ b/app/src/main/java/chat/revolt/api/realtime/RealtimeSocket.kt @@ -454,11 +454,11 @@ object RealtimeSocket { if (existing == null && userRelationshipFrame.user.id != null) { RevoltAPI.userCache[userRelationshipFrame.user.id] = userRelationshipFrame.user.copy( - relationship = userRelationshipFrame.status + relationship = userRelationshipFrame.status ?: "None" ) } else if (existing != null && userRelationshipFrame.user.id != null) { val merged = existing.mergeWithPartial(userRelationshipFrame.user).copy( - relationship = userRelationshipFrame.status + relationship = userRelationshipFrame.status ?: "None" ) RevoltAPI.userCache[userRelationshipFrame.user.id] = merged } else { diff --git a/app/src/main/java/chat/revolt/api/realtime/frames/receivable/ReceivableFrames.kt b/app/src/main/java/chat/revolt/api/realtime/frames/receivable/ReceivableFrames.kt index 359dc774..ad822047 100644 --- a/app/src/main/java/chat/revolt/api/realtime/frames/receivable/ReceivableFrames.kt +++ b/app/src/main/java/chat/revolt/api/realtime/frames/receivable/ReceivableFrames.kt @@ -1,6 +1,14 @@ package chat.revolt.api.realtime.frames.receivable -import chat.revolt.api.schemas.* +import chat.revolt.api.schemas.Channel +import chat.revolt.api.schemas.Embed +import chat.revolt.api.schemas.Emoji +import chat.revolt.api.schemas.Member +import chat.revolt.api.schemas.Message +import chat.revolt.api.schemas.Role +import chat.revolt.api.schemas.Server +import chat.revolt.api.schemas.ServerUserChoice +import chat.revolt.api.schemas.User import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonObject @@ -222,7 +230,7 @@ data class UserRelationshipFrame( val type: String = "UserRelationship", val id: String, val user: User, - val status: String + val status: String? = null ) typealias EmojiCreateFrame = Emoji