From 9bbade37dec0ba98be0e9b20f7a6f45cff59a9b0 Mon Sep 17 00:00:00 2001 From: trilene Date: Fri, 1 Jan 2021 08:46:08 -0500 Subject: [PATCH] Fix call answered on another device --- src/CallManager.cpp | 13 ++++++++----- src/timeline/TimelineModel.cpp | 7 ++++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/CallManager.cpp b/src/CallManager.cpp index 9864b203..f725d49f 100644 --- a/src/CallManager.cpp +++ b/src/CallManager.cpp @@ -351,12 +351,15 @@ CallManager::handleEvent(const RoomEvent &callAnswerEvent) callAnswerEvent.content.call_id, callAnswerEvent.sender); - if (!isOnCall() && callAnswerEvent.sender == utils::localUser().toStdString() && + if (callAnswerEvent.sender == utils::localUser().toStdString() && callid_ == callAnswerEvent.content.call_id) { - emit ChatPage::instance()->showNotification("Call answered on another device."); - stopRingtone(); - haveCallInvite_ = false; - emit newInviteState(); + if (!isOnCall()) { + emit ChatPage::instance()->showNotification( + "Call answered on another device."); + stopRingtone(); + haveCallInvite_ = false; + emit newInviteState(); + } return; } diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index adef886d..2b5b5794 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -613,8 +613,13 @@ TimelineModel::addEvents(const mtx::responses::Timeline &timeline) std::visit( [this](auto &event) { event.room_id = room_id_.toStdString(); - if (event.sender != http::client()->user_id().to_string()) + if constexpr (std::is_same_v, + RoomEvent>) emit newCallEvent(event); + else { + if (event.sender != http::client()->user_id().to_string()) + emit newCallEvent(event); + } }, e); else if (std::holds_alternative>(e))