Support min-stories.
This commit is contained in:
parent
64badee6f2
commit
deee074e2f
@ -762,6 +762,7 @@ StoryId StoryManager::on_get_story(DialogId owner_dialog_id,
|
|||||||
story = s.get();
|
story = s.get();
|
||||||
stories_.set(story_full_id, std::move(s));
|
stories_.set(story_full_id, std::move(s));
|
||||||
is_changed = true;
|
is_changed = true;
|
||||||
|
story_item->min_ = false;
|
||||||
|
|
||||||
inaccessible_story_full_ids_.erase(story_full_id);
|
inaccessible_story_full_ids_.erase(story_full_id);
|
||||||
send_closure_later(G()->messages_manager(),
|
send_closure_later(G()->messages_manager(),
|
||||||
@ -801,21 +802,29 @@ StoryId StoryManager::on_get_story(DialogId owner_dialog_id,
|
|||||||
change_story_files(story_full_id, story, old_file_ids);
|
change_story_files(story_full_id, story, old_file_ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto privacy_rules = UserPrivacySettingRules::get_user_privacy_setting_rules(td_, std::move(story_item->privacy_));
|
|
||||||
auto interaction_info = StoryInteractionInfo(td_, std::move(story_item->views_));
|
|
||||||
if (story->is_pinned_ != story_item->pinned_ || story->is_public_ != story_item->public_ ||
|
if (story->is_pinned_ != story_item->pinned_ || story->is_public_ != story_item->public_ ||
|
||||||
story->is_for_close_friends_ != story_item->close_friends_ || story->date_ != story_item->date_ ||
|
story->is_for_close_friends_ != story_item->close_friends_ || story->date_ != story_item->date_ ||
|
||||||
story->expire_date_ != story_item->expire_date_ || !(story->privacy_rules_ == privacy_rules) ||
|
story->expire_date_ != story_item->expire_date_) {
|
||||||
story->interaction_info_ != interaction_info) {
|
|
||||||
story->is_pinned_ = story_item->pinned_;
|
story->is_pinned_ = story_item->pinned_;
|
||||||
story->is_public_ = story_item->public_;
|
story->is_public_ = story_item->public_;
|
||||||
story->is_for_close_friends_ = story_item->close_friends_;
|
story->is_for_close_friends_ = story_item->close_friends_;
|
||||||
story->date_ = story_item->date_;
|
story->date_ = story_item->date_;
|
||||||
story->expire_date_ = story_item->expire_date_;
|
story->expire_date_ = story_item->expire_date_;
|
||||||
story->privacy_rules_ = std::move(privacy_rules);
|
|
||||||
story->interaction_info_ = std::move(interaction_info);
|
|
||||||
is_changed = true;
|
is_changed = true;
|
||||||
}
|
}
|
||||||
|
if (!is_story_owned(owner_dialog_id)) {
|
||||||
|
story_item->min_ = false;
|
||||||
|
}
|
||||||
|
if (!story_item->min_) {
|
||||||
|
auto privacy_rules = UserPrivacySettingRules::get_user_privacy_setting_rules(td_, std::move(story_item->privacy_));
|
||||||
|
auto interaction_info = StoryInteractionInfo(td_, std::move(story_item->views_));
|
||||||
|
|
||||||
|
if (story->privacy_rules_ != privacy_rules || story->interaction_info_ != interaction_info) {
|
||||||
|
story->privacy_rules_ = std::move(privacy_rules);
|
||||||
|
story->interaction_info_ = std::move(interaction_info);
|
||||||
|
is_changed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (story->caption_ != caption) {
|
if (story->caption_ != caption) {
|
||||||
story->caption_ = std::move(caption);
|
story->caption_ = std::move(caption);
|
||||||
if (edited_story != nullptr && edited_story->edit_caption_) {
|
if (edited_story != nullptr && edited_story->edit_caption_) {
|
||||||
|
@ -105,6 +105,10 @@ class UserPrivacySettingRules {
|
|||||||
return rules_ == other.rules_;
|
return rules_ == other.rules_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool operator!=(const UserPrivacySettingRules &other) const {
|
||||||
|
return !(rules_ == other.rules_);
|
||||||
|
}
|
||||||
|
|
||||||
vector<UserId> get_restricted_user_ids() const;
|
vector<UserId> get_restricted_user_ids() const;
|
||||||
|
|
||||||
template <class StorerT>
|
template <class StorerT>
|
||||||
|
Loading…
Reference in New Issue
Block a user