From a0821f5a01607416f49a24e10af62a3fac92907e Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 7 Feb 2025 15:47:09 +0400 Subject: [PATCH] Handle additional phone call discard reason. --- Telegram/SourceFiles/data/data_media_types.cpp | 13 +++++++------ Telegram/SourceFiles/data/data_media_types.h | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/data/data_media_types.cpp b/Telegram/SourceFiles/data/data_media_types.cpp index b3d57000e6..fa90492627 100644 --- a/Telegram/SourceFiles/data/data_media_types.cpp +++ b/Telegram/SourceFiles/data/data_media_types.cpp @@ -447,16 +447,17 @@ Call ComputeCallData(const MTPDmessageActionPhoneCall &call) { auto result = Call(); result.finishReason = [&] { if (const auto reason = call.vreason()) { - switch (reason->type()) { - case mtpc_phoneCallDiscardReasonBusy: + return reason->match([](const MTPDphoneCallDiscardReasonBusy &) { return CallFinishReason::Busy; - case mtpc_phoneCallDiscardReasonDisconnect: + }, [](const MTPDphoneCallDiscardReasonDisconnect &) { return CallFinishReason::Disconnected; - case mtpc_phoneCallDiscardReasonHangup: + }, [](const MTPDphoneCallDiscardReasonHangup &) { return CallFinishReason::Hangup; - case mtpc_phoneCallDiscardReasonMissed: + }, [](const MTPDphoneCallDiscardReasonMissed &) { return CallFinishReason::Missed; - } + }, [](const MTPDphoneCallDiscardReasonAllowGroupCall &) { + return CallFinishReason::AllowGroupCall; + }); Unexpected("Call reason type."); } return CallFinishReason::Hangup; diff --git a/Telegram/SourceFiles/data/data_media_types.h b/Telegram/SourceFiles/data/data_media_types.h index 739cc78392..f190e1035e 100644 --- a/Telegram/SourceFiles/data/data_media_types.h +++ b/Telegram/SourceFiles/data/data_media_types.h @@ -46,6 +46,7 @@ enum class CallFinishReason : char { Busy, Disconnected, Hangup, + AllowGroupCall, }; struct SharedContact final {