diff --git a/Telegram/SourceFiles/calls/calls_group_call.cpp b/Telegram/SourceFiles/calls/calls_group_call.cpp index 050f2cc423..8edb10426e 100644 --- a/Telegram/SourceFiles/calls/calls_group_call.cpp +++ b/Telegram/SourceFiles/calls/calls_group_call.cpp @@ -269,14 +269,18 @@ GroupCall::~GroupCall() { destroyController(); } +void GroupCall::setScheduledDate(TimeId date) { + const auto was = _scheduleDate; + _scheduleDate = date; + if (was && !date) { + join(inputCall()); + } +} + void GroupCall::subscribeToReal(not_null real) { real->scheduleDateValue( ) | rpl::start_with_next([=](TimeId date) { - const auto was = _scheduleDate; - _scheduleDate = date; - if (was && !date) { - join(inputCall()); - } + setScheduledDate(date); }, _lifetime); } @@ -821,11 +825,7 @@ void GroupCall::handlePossibleCreateOrJoinResponse( void GroupCall::handlePossibleCreateOrJoinResponse( const MTPDgroupCall &data) { - if (const auto date = data.vschedule_date()) { - _scheduleDate = date->v; - } else { - _scheduleDate = 0; - } + setScheduledDate(data.vschedule_date().value_or_empty()); if (_acceptFields) { if (!_instance && !_id) { const auto input = MTP_inputGroupCall( diff --git a/Telegram/SourceFiles/calls/calls_group_call.h b/Telegram/SourceFiles/calls/calls_group_call.h index 6e029418ae..90f0f8f9fe 100644 --- a/Telegram/SourceFiles/calls/calls_group_call.h +++ b/Telegram/SourceFiles/calls/calls_group_call.h @@ -259,6 +259,7 @@ private: void setJoinAs(not_null as); void saveDefaultJoinAs(not_null as); void subscribeToReal(not_null real); + void setScheduledDate(TimeId date); void audioLevelsUpdated(const tgcalls::GroupLevelsUpdate &data); void setInstanceConnected(tgcalls::GroupNetworkState networkState);