diff --git a/Telegram/SourceFiles/boxes/edit_caption_box.cpp b/Telegram/SourceFiles/boxes/edit_caption_box.cpp index e99924643a..09c9ccdd0e 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 08eecbe1c0..bd38c67019 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 2f0e34b099..4e124275c7 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 a3ead50d37..6d0ac1f3aa 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