Files
guru/net-im/forkgram/files/pins.patch
2026-02-18 19:32:21 +01:00

105 lines
3.7 KiB
Diff

diff -NaurBwdp a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp
--- a/Telegram/SourceFiles/data/data_session.cpp 2022-12-28 03:29:59.721281542 +0700
+++ b/Telegram/SourceFiles/data/data_session.cpp 2022-12-28 03:35:05.748566381 +0700
@@ -2138,48 +2138,28 @@ void Session::applyDialog(
}
bool Session::pinnedCanPin(not_null<Dialogs::Entry*> entry) const {
- if ([[maybe_unused]] const auto sublist = entry->asSublist()) {
- if (sublist->parentChat()) {
- return false;
- }
- const auto saved = &savedMessages();
- return pinnedChatsOrder(saved).size() < pinnedChatsLimit(saved);
- } else if (const auto topic = entry->asTopic()) {
- const auto forum = topic->forum();
- return pinnedChatsOrder(forum).size() < pinnedChatsLimit(forum);
- } else {
- const auto folder = entry->folder();
- return pinnedChatsOrder(folder).size() < pinnedChatsLimit(folder);
- }
+ return true;
}
bool Session::pinnedCanPin(
FilterId filterId,
not_null<History*> history) const {
- Expects(filterId != 0);
-
- const auto &list = chatsFilters().list();
- const auto i = ranges::find(list, filterId, &Data::ChatFilter::id);
- return (i == end(list))
- || (i->always().contains(history))
- || (i->always().size() < pinnedChatsLimit(filterId));
+ return true;
}
int Session::pinnedChatsLimit(Data::Folder *folder) const {
const auto limits = Data::PremiumLimits(_session);
- return folder
- ? limits.dialogsFolderPinnedCurrent()
- : limits.dialogsPinnedCurrent();
+ return 999999;
}
int Session::pinnedChatsLimit(FilterId filterId) const {
const auto limits = Data::PremiumLimits(_session);
- return limits.dialogFiltersChatsCurrent();
+ return 999999;
}
int Session::pinnedChatsLimit(not_null<Data::Forum*> forum) const {
const auto limits = Data::PremiumLimits(_session);
- return limits.topicsPinnedCurrent();
+ return 999999;
}
int Session::pinnedChatsLimit(not_null<Data::SavedMessages*> saved) const {
@@ -2190,12 +2173,7 @@ rpl::producer<int> Session::maxPinnedCha
// We always use premium limit in the MainList limit producer,
// because it slices the list to that limit. We don't want to slice
// premium-ly added chats from the pinned list because of sync issues.
- return _session->appConfig().value(
- ) | rpl::map([folder, limits = Data::PremiumLimits(_session)] {
- return folder
- ? limits.dialogsFolderPinnedPremium()
- : limits.dialogsPinnedPremium();
- });
+ return rpl::single(999999);
}
rpl::producer<int> Session::maxPinnedChatsLimitValue(
@@ -2204,18 +2182,12 @@ rpl::producer<int> Session::maxPinnedCha
// We always use premium limit in the MainList limit producer,
// because it slices the list to that limit. We don't want to slice
// premium-ly added chats from the pinned list because of sync issues.
- return _session->appConfig().value(
- ) | rpl::map([limits = Data::PremiumLimits(_session)] {
- return limits.dialogFiltersChatsPremium();
- });
+ return rpl::single(999999);
}
rpl::producer<int> Session::maxPinnedChatsLimitValue(
not_null<Data::Forum*> forum) const {
- return _session->appConfig().value(
- ) | rpl::map([limits = Data::PremiumLimits(_session)] {
- return limits.topicsPinnedCurrent();
- });
+ return rpl::single(999999);
}
rpl::producer<int> Session::maxPinnedChatsLimitValue(
@@ -2224,10 +2196,7 @@ rpl::producer<int> Session::maxPinnedCha
// We always use premium limit in the MainList limit producer,
// because it slices the list to that limit. We don't want to slice
// premium-ly added chats from the pinned list because of sync issues.
- return _session->appConfig().value(
- ) | rpl::map([limits = Data::PremiumLimits(_session)] {
- return limits.savedSublistsPinnedPremium();
- });
+ return rpl::single(999999);
}
int Session::groupFreeTranscribeLevel() const {