From 37c112f6abbdcd40e3ace322cabcce41b17a59f4 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 22 Mar 2019 09:07:09 +0800 Subject: [PATCH] media group messages order --- CHANGELOG.md | 1 + .../utils/BaseMessageUpdateToMediaGroupUpdate.kt | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 992462dc57..54fec73005 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ will not contain `user` field (but `CommonMediaGroupMessage` will have) * Now `MediaCollectionContent` is `MediaContent` (classes of this interface must choose best media for present out) * `PhotoContent` now choose biggest photo size from its collection as `media` +* Fix in order of media group messages which was received by webhooks ## 0.11.0 diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt index e94d4af561..bf9ffd359e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt @@ -5,11 +5,12 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.update.MediaGroupUpdates import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.BaseMessageUpdate fun List.toMediaGroupUpdate(): MediaGroupUpdate? = (this as? MediaGroupUpdate) ?: let { + val resultList = sortedBy { it.updateId } when (first()) { - is MessageUpdate -> MessageMediaGroupUpdate(this) - is EditMessageUpdate -> EditMessageMediaGroupUpdate(this) - is ChannelPostUpdate -> ChannelPostMediaGroupUpdate(this) - is EditChannelPostUpdate -> EditChannelPostMediaGroupUpdate(this) + is MessageUpdate -> MessageMediaGroupUpdate(resultList) + is EditMessageUpdate -> EditMessageMediaGroupUpdate(resultList) + is ChannelPostUpdate -> ChannelPostMediaGroupUpdate(resultList) + is EditChannelPostUpdate -> EditChannelPostMediaGroupUpdate(resultList) else -> null } }