mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-17 22:57:11 +02:00
Provided count of pinned dialogs to premium limit boxes for pins.
This commit is contained in:
parent
95cc27b145
commit
9b6b5968e2
3 changed files with 24 additions and 8 deletions
|
@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_user.h"
|
||||
#include "data/data_channel.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_folder.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "settings/settings_common.h"
|
||||
#include "settings/settings_premium.h"
|
||||
|
@ -462,6 +463,10 @@ void SimpleLimitBox(
|
|||
}
|
||||
}
|
||||
|
||||
[[nodiscard]] int PinsCount(not_null<Dialogs::MainList*> list) {
|
||||
return list->pinned()->order().size();
|
||||
}
|
||||
|
||||
void SimplePinsLimitBox(
|
||||
not_null<Ui::GenericBox*> box,
|
||||
not_null<Main::Session*> session,
|
||||
|
@ -469,11 +474,16 @@ void SimplePinsLimitBox(
|
|||
const QString &keyDefault,
|
||||
int limitDefault,
|
||||
const QString &keyPremium,
|
||||
int limitPremium) {
|
||||
int limitPremium,
|
||||
int currentCount) {
|
||||
const auto premium = session->premium();
|
||||
|
||||
const auto defaultLimit = Limit(session, keyDefault, limitDefault);
|
||||
const auto premiumLimit = Limit(session, keyPremium, limitPremium);
|
||||
const auto current = std::clamp(
|
||||
float64(currentCount),
|
||||
defaultLimit,
|
||||
premiumLimit);
|
||||
|
||||
auto text = rpl::combine(
|
||||
tr::lng_filter_pin_limit1(
|
||||
|
@ -497,7 +507,7 @@ void SimplePinsLimitBox(
|
|||
tr::lng_filter_pin_limit_title(),
|
||||
std::move(text),
|
||||
refAddition,
|
||||
{ defaultLimit, defaultLimit, premiumLimit, &st::premiumIconPins },
|
||||
{ defaultLimit, current, premiumLimit, &st::premiumIconPins },
|
||||
premium);
|
||||
}
|
||||
|
||||
|
@ -742,7 +752,8 @@ void FiltersLimitBox(
|
|||
|
||||
void FilterPinsLimitBox(
|
||||
not_null<Ui::GenericBox*> box,
|
||||
not_null<Main::Session*> session) {
|
||||
not_null<Main::Session*> session,
|
||||
FilterId filterId) {
|
||||
SimplePinsLimitBox(
|
||||
box,
|
||||
session,
|
||||
|
@ -750,7 +761,8 @@ void FilterPinsLimitBox(
|
|||
"dialog_filters_chats_limit_default",
|
||||
100,
|
||||
"dialog_filters_chats_limit_premium",
|
||||
200);
|
||||
200,
|
||||
PinsCount(session->data().chatsFilters().chatsList(filterId)));
|
||||
}
|
||||
|
||||
void FolderPinsLimitBox(
|
||||
|
@ -763,7 +775,8 @@ void FolderPinsLimitBox(
|
|||
"dialogs_folder_pinned_limit_default",
|
||||
100,
|
||||
"dialogs_folder_pinned_limit_premium",
|
||||
200);
|
||||
200,
|
||||
PinsCount(session->data().folder(Data::Folder::kId)->chatsList()));
|
||||
}
|
||||
|
||||
void PinsLimitBox(
|
||||
|
@ -776,7 +789,8 @@ void PinsLimitBox(
|
|||
"dialogs_pinned_limit_default",
|
||||
5,
|
||||
"dialogs_pinned_limit_premium",
|
||||
10);
|
||||
10,
|
||||
PinsCount(session->data().chatsList()));
|
||||
}
|
||||
|
||||
void CaptionLimitBox(
|
||||
|
|
|
@ -32,7 +32,8 @@ void FiltersLimitBox(
|
|||
not_null<Main::Session*> session);
|
||||
void FilterPinsLimitBox(
|
||||
not_null<Ui::GenericBox*> box,
|
||||
not_null<Main::Session*> session);
|
||||
not_null<Main::Session*> session,
|
||||
FilterId filterId);
|
||||
void FolderPinsLimitBox(
|
||||
not_null<Ui::GenericBox*> box,
|
||||
not_null<Main::Session*> session);
|
||||
|
|
|
@ -251,7 +251,8 @@ bool PinnedLimitReached(
|
|||
owner->setChatPinned(history, FilterId(), true);
|
||||
history->session().api().savePinnedOrder(folder);
|
||||
} else if (filterId) {
|
||||
controller->show(Box(FilterPinsLimitBox, &history->session()));
|
||||
controller->show(
|
||||
Box(FilterPinsLimitBox, &history->session(), filterId));
|
||||
} else if (folder) {
|
||||
controller->show(Box(FolderPinsLimitBox, &history->session()));
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue