diff --git a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp index c319afaf5b..6c3eabec6d 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_actions.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_actions.cpp @@ -397,7 +397,11 @@ object_ptr DetailsFiller::setupInfo() { tr::lng_info_mobile_label(), PhoneOrHiddenValue(user), tr::lng_profile_copy_phone(tr::now)).text; - const auto hook = [=](Ui::FlatLabel::ContextMenuRequest request) { + using namespace Ui; + const auto hook = [=](FlatLabel::ContextMenuRequest request) { + if (user->phone().isEmpty()) { + return; + } phoneLabel->fillContextMenu(request); AddPhoneMenu(request.menu, user); }; diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.cpp b/Telegram/SourceFiles/settings/settings_privacy_security.cpp index e21bbb0450..2ca4d6bf89 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_security.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_security.cpp @@ -246,15 +246,28 @@ rpl::producer BlockedPeersCount(not_null<::Main::Session*> session) { }); } +void SetupBlockedList( + not_null controller, + not_null container, + rpl::producer<> updateTrigger, + Fn showOther); + void SetupPrivacy( not_null controller, not_null container, - rpl::producer<> updateTrigger) { + rpl::producer<> updateTrigger, + Fn showOther) { AddSkip(container, st::settingsPrivacySkip); AddSubsectionTitle(container, tr::lng_settings_privacy_title()); const auto session = &controller->session(); + SetupBlockedList( + controller, + container, + rpl::duplicate(updateTrigger), + showOther); + using Key = Privacy::Key; const auto add = [&]( rpl::producer label, @@ -280,22 +293,27 @@ void SetupPrivacy( { &st::settingsIconOnline, kIconLightBlue }, Key::LastSeen, [=] { return std::make_unique(session); }); + add( + tr::lng_settings_profile_photo_privacy(), + { &st::settingsIconAccount, kIconRed }, + Key::ProfilePhoto, + [] { return std::make_unique(); }); add( tr::lng_settings_forwards_privacy(), { &st::settingsIconForward, kIconLightOrange }, Key::Forwards, [=] { return std::make_unique( controller); }); - add( - tr::lng_settings_profile_photo_privacy(), - { &st::settingsIconAccount, kIconRed }, - Key::ProfilePhoto, - [] { return std::make_unique(); }); add( tr::lng_settings_calls(), { &st::settingsIconVideoCalls, kIconGreen }, Key::Calls, [] { return std::make_unique(); }); + add( + tr::lng_settings_groups_invite(), + { &st::settingsIconGroup, kIconDarkBlue }, + Key::Invites, + [] { return std::make_unique(); }); AddPremiumPrivacyButton( controller, container, @@ -303,16 +321,11 @@ void SetupPrivacy( { &st::settingsPremiumIconVoice, kIconRed }, Key::Voices, [=] { return std::make_unique(session); }); - add( - tr::lng_settings_groups_invite(), - { &st::settingsIconGroup, kIconDarkBlue }, - Key::Invites, - [] { return std::make_unique(); }); session->api().userPrivacy().reload(Api::UserPrivacy::Key::AddedByPhone); AddSkip(container, st::settingsPrivacySecurityPadding); - AddDividerText(container, tr::lng_settings_group_privacy_about()); + AddDivider(container); } void SetupArchiveAndMute( @@ -708,11 +721,6 @@ void SetupSecurity( AddSkip(container, st::settingsPrivacySkip); AddSubsectionTitle(container, tr::lng_settings_security()); - SetupBlockedList( - controller, - container, - rpl::duplicate(updateTrigger), - showOther); SetupSessionsList( controller, container, @@ -865,10 +873,11 @@ void PrivacySecurity::setupContent( return rpl::duplicate(updateOnTick); }; - SetupPrivacy(controller, content, trigger()); - SetupSecurity(controller, content, trigger(), [=](Type type) { + const auto showOther = [=](Type type) { _showOther.fire_copy(type); - }); + }; + SetupPrivacy(controller, content, trigger(), showOther); + SetupSecurity(controller, content, trigger(), showOther); #if !defined OS_MAC_STORE && !defined OS_WIN_STORE SetupSensitiveContent(controller, content, trigger()); #else // !OS_MAC_STORE && !OS_WIN_STORE