MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / addBlockUser

Method addBlockUser

Telegram/SourceFiles/window/window_peer_menu.cpp:867–917  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

865}
866
867void Filler::addBlockUser() {
868 const auto user = _peer->asUser();
869 if (!user
870 || user->isInaccessible()
871 || user->isSelf()
872 || user->isRepliesChat()
873 || user->isVerifyCodes()) {
874 return;
875 }
876 const auto window = _controller;
877 const auto blockText = [](not_null<UserData*> user) {
878 return user->isBlocked()
879 ? ((user->isBot() && !user->isSupport())
880 ? tr::lng_profile_restart_bot(tr::now)
881 : tr::lng_profile_unblock_user(tr::now))
882 : ((user->isBot() && !user->isSupport())
883 ? tr::lng_profile_block_bot(tr::now)
884 : tr::lng_profile_block_user(tr::now));
885 };
886 const auto blockAction = _addAction(blockText(user), [=] {
887 const auto show = window->uiShow();
888 if (show->showFrozenError()) {
889 return;
890 } else if (user->isBlocked()) {
891 PeerMenuUnblockUserWithBotRestart(show, user);
892 } else if (user->isBot()) {
893 user->session().api().blockedPeers().block(user);
894 } else {
895 window->show(Box(
896 PeerMenuBlockUserBox,
897 &window->window(),
898 user,
899 v::null,
900 v::null));
901 }
902 }, (!user->isBlocked()
903 ? &st::menuIconBlock
904 : user->isBot()
905 ? &st::menuIconRestartBot
906 : &st::menuIconUnblock));
907
908 auto actionText = _peer->session().changes().peerUpdates(
909 _peer,
910 Data::PeerUpdate::Flag::IsBlocked
911 ) | rpl::map([=] { return blockText(user); });
912 SetActionText(blockAction, std::move(actionText));
913
914 if (user->blockStatus() == UserData::BlockStatus::Unknown) {
915 user->session().api().requestFullPeer(user);
916 }
917}
918
919void Filler::addViewDiscussion() {
920 const auto channel = _peer->asBroadcast();

Callers

nothing calls this directly

Calls 15

SetActionTextFunction · 0.85
asUserMethod · 0.80
isInaccessibleMethod · 0.80
isSelfMethod · 0.80
isRepliesChatMethod · 0.80
isVerifyCodesMethod · 0.80
isSupportMethod · 0.80
apiMethod · 0.80
peerUpdatesMethod · 0.80
blockStatusMethod · 0.80
requestFullPeerMethod · 0.80

Tested by

no test coverage detected