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 {