From 7711413b30ccb1c32726a3adfcb16edcb178f54f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Wed, 21 Sep 2022 20:43:18 +0200 Subject: [PATCH] [API/Vulcan] Fix getting MessageBoxes and changing message read status. --- .../vulcan/data/hebe/VulcanHebeMessageBoxes.kt | 10 +++++++++- .../edziennik/vulcan/data/hebe/VulcanHebeMessages.kt | 5 ++--- .../vulcan/data/hebe/VulcanHebeMessagesChangeStatus.kt | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessageBoxes.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessageBoxes.kt index e1c03aff..df6613ba 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessageBoxes.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessageBoxes.kt @@ -26,16 +26,24 @@ class VulcanHebeMessageBoxes( VULCAN_HEBE_ENDPOINT_MESSAGEBOX, lastSync = lastSync ) { list, _ -> + var found = false for (messageBox in list) { val name = messageBox.getString("Name") ?: continue val studentName = profile?.studentNameLong ?: continue - if (!name.startsWith(studentName)) + if (!name.contains(studentName)) continue data.messageBoxKey = messageBox.getString("GlobalKey") data.messageBoxName = name + found = true break } + if (!found && list.isNotEmpty()) { + list.firstOrNull()?.let { messageBox -> + data.messageBoxKey = messageBox.getString("GlobalKey") + data.messageBoxName = messageBox.getString("Name") + } + } data.setSyncNext(ENDPOINT_VULCAN_HEBE_MESSAGE_BOXES, 7 * DAY) onSuccess(ENDPOINT_VULCAN_HEBE_MESSAGE_BOXES) } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessages.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessages.kt index 29f37e62..affca1e1 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessages.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessages.kt @@ -98,9 +98,6 @@ class VulcanHebeMessages( val receivers = message.getJsonArray("Receiver") ?.asJsonObjectList() ?: return@forEach - val receiverReadDate = - if (receivers.size == 1) readDate - else -1 for (receiver in receivers) { val recipientId = if (messageType == TYPE_SENT) @@ -108,6 +105,8 @@ class VulcanHebeMessages( else -1 + val receiverReadDate = receiver.getLong("HasRead", -1) + val messageRecipientObject = MessageRecipient( profileId, recipientId, diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessagesChangeStatus.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessagesChangeStatus.kt index f0090a9c..2144a768 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessagesChangeStatus.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/hebe/VulcanHebeMessagesChangeStatus.kt @@ -24,7 +24,7 @@ class VulcanHebeMessagesChangeStatus( } init { let { - val messageKey = messageObject.body?.let { data.parseMessageMeta(it) }?.get("globalKey") ?: run { + val messageKey = messageObject.body?.let { data.parseMessageMeta(it) }?.get("uuid") ?: run { EventBus.getDefault().postSticky(MessageGetEvent(messageObject)) onSuccess() return@let