From ce7a3c354c1b88a7f99e66ce774c3edb1063e81f Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 5 Sep 2021 12:37:30 +0300 Subject: [PATCH] Simplified conditions for hiding hint for photo editor. --- Telegram/SourceFiles/boxes/edit_caption_box.cpp | 16 ++++++++++++---- Telegram/SourceFiles/boxes/send_files_box.cpp | 11 +++++++---- .../SourceFiles/main/main_session_settings.h | 2 +- .../SourceFiles/storage/storage_media_prepare.h | 2 +- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Telegram/SourceFiles/boxes/edit_caption_box.cpp b/Telegram/SourceFiles/boxes/edit_caption_box.cpp index e99924643..09c9ccdd0 100644 --- a/Telegram/SourceFiles/boxes/edit_caption_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_caption_box.cpp @@ -399,10 +399,20 @@ void EditCaptionBox::setupEditEventHandler() { } void EditCaptionBox::setupPhotoEditorEventHandler() { + const auto openedOnce = lifetime().make_state(false); _photoEditorOpens.events( ) | rpl::start_with_next([=, controller = _controller] { + const auto increment = [=] { + if (*openedOnce) { + return; + } + *openedOnce = true; + controller->session().settings().incrementPhotoEditorHintShown(); + controller->session().saveSettings(); + }; const auto previewWidth = st::sendMediaPreviewSize; if (!_preparedList.files.empty()) { + increment(); Editor::OpenWithPreparedFile( this, controller, @@ -414,6 +424,7 @@ void EditCaptionBox::setupPhotoEditorEventHandler() { if (!large) { return; } + increment(); auto callback = [=](const Editor::PhotoModifications &mods) { if (!mods || !_photoMedia) { return; @@ -663,10 +674,7 @@ void EditCaptionBox::save() { action.options = options; action.replaceMediaOf = item->fullId().msg; - if (Storage::ApplyModifications(_preparedList)) { - _controller->session().settings().incrementPhotoEditorHintShown(); - _controller->session().saveSettings(); - } + Storage::ApplyModifications(_preparedList); _controller->session().api().editMedia( std::move(_preparedList), diff --git a/Telegram/SourceFiles/boxes/send_files_box.cpp b/Telegram/SourceFiles/boxes/send_files_box.cpp index 08eecbe1c..bd38c6701 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.cpp +++ b/Telegram/SourceFiles/boxes/send_files_box.cpp @@ -613,8 +613,14 @@ void SendFilesBox::pushBlock(int from, int till) { crl::guard(this, callback)); }, widget->lifetime()); + const auto openedOnce = widget->lifetime().make_state(false); block.itemModifyRequest( ) | rpl::start_with_next([=, controller = _controller](int index) { + if (!(*openedOnce)) { + controller->session().settings().incrementPhotoEditorHintShown(); + controller->session().saveSettings(); + } + *openedOnce = true; Editor::OpenWithPreparedFile( this, controller, @@ -1008,10 +1014,7 @@ void SendFilesBox::send( block.applyAlbumOrder(); } - if (Storage::ApplyModifications(_list)) { - _controller->session().settings().incrementPhotoEditorHintShown(); - _controller->session().saveSettings(); - } + Storage::ApplyModifications(_list); _confirmed = true; if (_confirmedCallback) { diff --git a/Telegram/SourceFiles/main/main_session_settings.h b/Telegram/SourceFiles/main/main_session_settings.h index 2f0e34b09..4e124275c 100644 --- a/Telegram/SourceFiles/main/main_session_settings.h +++ b/Telegram/SourceFiles/main/main_session_settings.h @@ -125,7 +125,7 @@ public: private: static constexpr auto kDefaultSupportChatsLimitSlice = 7 * 24 * 60 * 60; - static constexpr auto kPhotoEditorHintMaxShowsCount = 10; + static constexpr auto kPhotoEditorHintMaxShowsCount = 5; ChatHelpers::SelectorTab _selectorTab; // per-window base::flat_set _groupStickersSectionHidden; diff --git a/Telegram/SourceFiles/storage/storage_media_prepare.h b/Telegram/SourceFiles/storage/storage_media_prepare.h index a3ead50d3..6d0ac1f3a 100644 --- a/Telegram/SourceFiles/storage/storage_media_prepare.h +++ b/Telegram/SourceFiles/storage/storage_media_prepare.h @@ -50,6 +50,6 @@ enum class MimeDataState { void PrepareDetails(Ui::PreparedFile &file, int previewWidth); void UpdateImageDetails(Ui::PreparedFile &file, int previewWidth); -[[nodiscard]] bool ApplyModifications(Ui::PreparedList &list); +bool ApplyModifications(Ui::PreparedList &list); } // namespace Storage