From 97dbb98862e26a2e87e45b67c9c6504047806789 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sat, 26 Feb 2022 08:07:20 +0300 Subject: [PATCH] Added ability to schedule live stream without "Join As" choosing. --- Telegram/SourceFiles/calls/calls_instance.cpp | 2 ++ .../calls/group/calls_choose_join_as.cpp | 13 +++++++++++-- .../SourceFiles/calls/group/calls_choose_join_as.h | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_instance.cpp b/Telegram/SourceFiles/calls/calls_instance.cpp index c3d379476..c044c9d0d 100644 --- a/Telegram/SourceFiles/calls/calls_instance.cpp +++ b/Telegram/SourceFiles/calls/calls_instance.cpp @@ -206,6 +206,8 @@ void Instance::startOrJoinGroupCall( ? Group::ChooseJoinAsProcess::Context::JoinWithConfirm : peer->groupCall() ? Group::ChooseJoinAsProcess::Context::Join + : args.scheduleNeeded + ? Group::ChooseJoinAsProcess::Context::CreateScheduled : Group::ChooseJoinAsProcess::Context::Create; _chooseJoinAs->start(peer, context, [=](object_ptr box) { Ui::show(std::move(box), Ui::LayerOption::KeepOther); diff --git a/Telegram/SourceFiles/calls/group/calls_choose_join_as.cpp b/Telegram/SourceFiles/calls/group/calls_choose_join_as.cpp index 38974f3d8..17a4533fa 100644 --- a/Telegram/SourceFiles/calls/group/calls_choose_join_as.cpp +++ b/Telegram/SourceFiles/calls/group/calls_choose_join_as.cpp @@ -243,7 +243,7 @@ void ChooseJoinAsBox( auto next = (context == Context::Switch) ? tr::lng_settings_save() : tr::lng_continue(); - if (context == Context::Create) { + if ((context == Context::Create) && !livestream) { const auto makeLink = [](const QString &text) { return Ui::Text::Link(text); }; @@ -346,7 +346,16 @@ void ChooseJoinAsProcess::start( _request = nullptr; }, _request->lifetime); - requestList(); + if (context == Context::CreateScheduled) { + auto box = Box( + ScheduleGroupCallBox, + JoinInfo{ .peer = peer, .joinAs = peer }, + [=](auto info) { finish(info); }); + _request->box = Ui::MakeWeak(box.data()); + showBox(std::move(box)); + } else { + requestList(); + } } void ChooseJoinAsProcess::requestList() { diff --git a/Telegram/SourceFiles/calls/group/calls_choose_join_as.h b/Telegram/SourceFiles/calls/group/calls_choose_join_as.h index 67d005682..f078497c1 100644 --- a/Telegram/SourceFiles/calls/group/calls_choose_join_as.h +++ b/Telegram/SourceFiles/calls/group/calls_choose_join_as.h @@ -27,6 +27,7 @@ public: enum class Context { Create, + CreateScheduled, Join, JoinWithConfirm, Switch,