mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-08-02 02:07:54 +00:00
Merge tag 'v4.10.0' into dev
# Conflicts: # README.md # Telegram/Resources/winrc/Telegram.rc # Telegram/Resources/winrc/Updater.rc # Telegram/SourceFiles/apiwrap.cpp # Telegram/SourceFiles/core/version.h # Telegram/SourceFiles/data/data_stories.cpp # Telegram/SourceFiles/platform/win/windows_app_user_model_id.cpp # Telegram/lib_ui # snap/snapcraft.yaml
This commit is contained in:
@@ -919,7 +919,17 @@ not_null<PeerData*> Session::processChat(const MTPChat &data) {
|
||||
| Flag::NoForwards
|
||||
| Flag::JoinToWrite
|
||||
| Flag::RequestToJoin
|
||||
| Flag::Forum;
|
||||
| Flag::Forum
|
||||
| ((!minimal && !data.is_stories_hidden_min())
|
||||
? Flag::StoriesHidden
|
||||
: Flag());
|
||||
const auto storiesState = minimal
|
||||
? std::optional<Data::Stories::PeerSourceState>()
|
||||
: data.is_stories_unavailable()
|
||||
? Data::Stories::PeerSourceState()
|
||||
: !data.vstories_max_id()
|
||||
? std::optional<Data::Stories::PeerSourceState>()
|
||||
: stories().peerSourceState(channel, data.vstories_max_id()->v);
|
||||
const auto flagsSet = (data.is_broadcast() ? Flag::Broadcast : Flag())
|
||||
| (data.is_verified() ? Flag::Verified : Flag())
|
||||
| (data.is_scam() ? Flag::Scam : Flag())
|
||||
@@ -945,8 +955,20 @@ not_null<PeerData*> Session::processChat(const MTPChat &data) {
|
||||
| (data.is_join_request() ? Flag::RequestToJoin : Flag())
|
||||
| ((data.is_forum() && data.is_megagroup())
|
||||
? Flag::Forum
|
||||
: Flag())
|
||||
| ((!minimal
|
||||
&& !data.is_stories_hidden_min()
|
||||
&& data.is_stories_hidden())
|
||||
? Flag::StoriesHidden
|
||||
: Flag());
|
||||
channel->setFlags((channel->flags() & ~flagsMask) | flagsSet);
|
||||
if (!minimal && storiesState) {
|
||||
result->setStoriesState(!storiesState->maxId
|
||||
? UserData::StoriesState::None
|
||||
: (storiesState->maxId > storiesState->readTill)
|
||||
? UserData::StoriesState::HasUnread
|
||||
: UserData::StoriesState::HasRead);
|
||||
}
|
||||
|
||||
channel->setPhoto(data.vphoto());
|
||||
|
||||
@@ -2699,7 +2721,7 @@ void Session::checkSelfDestructItems() {
|
||||
auto nextDestructIn = crl::time(0);
|
||||
for (auto i = _selfDestructItems.begin(); i != _selfDestructItems.cend();) {
|
||||
if (const auto item = message(*i)) {
|
||||
if (auto destructIn = item->getSelfDestructIn(now)) {
|
||||
if (const auto destructIn = item->getSelfDestructIn(now)) {
|
||||
if (nextDestructIn > 0) {
|
||||
accumulate_min(nextDestructIn, destructIn);
|
||||
} else {
|
||||
@@ -3425,12 +3447,12 @@ void Session::webpageApplyFields(
|
||||
for (const auto &attribute : attributes->v) {
|
||||
attribute.match([&](const MTPDwebPageAttributeStory &data) {
|
||||
storyId = FullStoryId{
|
||||
peerFromUser(data.vuser_id()),
|
||||
peerFromMTP(data.vpeer()),
|
||||
data.vid().v,
|
||||
};
|
||||
if (const auto embed = data.vstory()) {
|
||||
story = stories().applyFromWebpage(
|
||||
peerFromUser(data.vuser_id()),
|
||||
peerFromMTP(data.vpeer()),
|
||||
*embed);
|
||||
} else if (const auto maybe = stories().lookup(storyId)) {
|
||||
story = *maybe;
|
||||
|
||||
Reference in New Issue
Block a user