mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Added support of credits to giveaway info results.
This commit is contained in:
parent
a67fdda913
commit
19d386f977
4 changed files with 51 additions and 11 deletions
|
@ -2922,6 +2922,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
"lng_prizes_how_yes_joined_one" = "You are participating in this giveaway, because you have joined {channel}.";
|
"lng_prizes_how_yes_joined_one" = "You are participating in this giveaway, because you have joined {channel}.";
|
||||||
"lng_prizes_how_yes_joined_many" = "You are participating in this giveaway, because you have joined {channel} (and other listed groups and channels).";
|
"lng_prizes_how_yes_joined_many" = "You are participating in this giveaway, because you have joined {channel} (and other listed groups and channels).";
|
||||||
"lng_prizes_you_won" = "You won a prize in this giveaway {cup}";
|
"lng_prizes_you_won" = "You won a prize in this giveaway {cup}";
|
||||||
|
"lng_prizes_you_won_credits" = "You won {amount} in this giveaway {cup}";
|
||||||
|
"lng_prizes_you_won_credits_amount#one" = "{count} Star";
|
||||||
|
"lng_prizes_you_won_credits_amount#other" = "{count} Stars";
|
||||||
"lng_prizes_view_prize" = "View my prize";
|
"lng_prizes_view_prize" = "View my prize";
|
||||||
"lng_prizes_you_didnt" = "You didn't win a prize in this giveaway.";
|
"lng_prizes_you_didnt" = "You didn't win a prize in this giveaway.";
|
||||||
"lng_prizes_cancelled" = "The channel cancelled the prizes by reversing the payment for them.";
|
"lng_prizes_cancelled" = "The channel cancelled the prizes by reversing the payment for them.";
|
||||||
|
|
|
@ -364,6 +364,7 @@ void Premium::resolveGiveawayInfo(
|
||||||
info.activatedCount = data.vactivated_count().value_or_empty();
|
info.activatedCount = data.vactivated_count().value_or_empty();
|
||||||
info.finishDate = data.vfinish_date().v;
|
info.finishDate = data.vfinish_date().v;
|
||||||
info.startDate = data.vstart_date().v;
|
info.startDate = data.vstart_date().v;
|
||||||
|
info.credits = data.vstars_prize().value_or_empty();
|
||||||
});
|
});
|
||||||
_giveawayInfoDone(std::move(info));
|
_giveawayInfoDone(std::move(info));
|
||||||
}).fail([=] {
|
}).fail([=] {
|
||||||
|
|
|
@ -57,6 +57,7 @@ struct GiveawayInfo {
|
||||||
TimeId tooEarlyDate = 0;
|
TimeId tooEarlyDate = 0;
|
||||||
TimeId finishDate = 0;
|
TimeId finishDate = 0;
|
||||||
TimeId startDate = 0;
|
TimeId startDate = 0;
|
||||||
|
uint64 credits = 0;
|
||||||
int winnersCount = 0;
|
int winnersCount = 0;
|
||||||
int activatedCount = 0;
|
int activatedCount = 0;
|
||||||
bool participating = false;
|
bool participating = false;
|
||||||
|
|
|
@ -1419,21 +1419,56 @@ void GiveawayInfoBox(
|
||||||
: !start->channels.empty()
|
: !start->channels.empty()
|
||||||
? start->channels.front()->name()
|
? start->channels.front()->name()
|
||||||
: u"channel"_q;
|
: u"channel"_q;
|
||||||
auto text = TextWithEntities();
|
|
||||||
|
|
||||||
if (!info.giftCode.isEmpty()) {
|
auto resultText = (!info.giftCode.isEmpty())
|
||||||
text.append("\n\n");
|
? tr::lng_prizes_you_won(
|
||||||
text.append(Ui::Text::Bold(tr::lng_prizes_you_won(
|
|
||||||
tr::now,
|
|
||||||
lt_cup,
|
lt_cup,
|
||||||
QString::fromUtf8("\xf0\x9f\x8f\x86"))));
|
rpl::single(
|
||||||
text.append("\n\n");
|
TextWithEntities{ QString::fromUtf8("\xf0\x9f\x8f\x86") }),
|
||||||
} else if (info.state == State::Finished) {
|
Ui::Text::WithEntities)
|
||||||
text.append("\n\n");
|
: (info.credits)
|
||||||
text.append(Ui::Text::Bold(tr::lng_prizes_you_didnt(tr::now)));
|
? tr::lng_prizes_you_won_credits(
|
||||||
text.append("\n\n");
|
lt_amount,
|
||||||
|
tr::lng_prizes_you_won_credits_amount(
|
||||||
|
lt_count,
|
||||||
|
rpl::single(float64(info.credits)),
|
||||||
|
Ui::Text::Bold),
|
||||||
|
lt_cup,
|
||||||
|
rpl::single(
|
||||||
|
TextWithEntities{ QString::fromUtf8("\xf0\x9f\x8f\x86") }),
|
||||||
|
Ui::Text::WithEntities)
|
||||||
|
: (info.state == State::Finished)
|
||||||
|
? tr::lng_prizes_you_didnt(Ui::Text::WithEntities)
|
||||||
|
: (rpl::producer<TextWithEntities>)(nullptr);
|
||||||
|
|
||||||
|
if (resultText) {
|
||||||
|
const auto &st = st::changePhoneDescription;
|
||||||
|
const auto skip = st.style.font->height * 0.5;
|
||||||
|
auto label = object_ptr<Ui::FlatLabel>(
|
||||||
|
box.get(),
|
||||||
|
std::move(resultText),
|
||||||
|
st);
|
||||||
|
if ((!info.giftCode.isEmpty()) || info.credits) {
|
||||||
|
label->setTextColorOverride(st::windowActiveTextFg->c);
|
||||||
|
}
|
||||||
|
const auto result = box->addRow(
|
||||||
|
object_ptr<Ui::PaddingWrap<Ui::CenterWrap<Ui::FlatLabel>>>(
|
||||||
|
box.get(),
|
||||||
|
object_ptr<Ui::CenterWrap<Ui::FlatLabel>>(
|
||||||
|
box.get(),
|
||||||
|
std::move(label)),
|
||||||
|
QMargins(0, skip, 0, skip)));
|
||||||
|
result->paintRequest() | rpl::start_with_next([=] {
|
||||||
|
auto p = QPainter(result);
|
||||||
|
p.setPen(Qt::NoPen);
|
||||||
|
p.setBrush(st::boxDividerBg);
|
||||||
|
p.drawRoundedRect(result->rect(), st::boxRadius, st::boxRadius);
|
||||||
|
}, result->lifetime());
|
||||||
|
Ui::AddSkip(box->verticalLayout());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto text = TextWithEntities();
|
||||||
|
|
||||||
const auto quantity = start
|
const auto quantity = start
|
||||||
? start->quantity
|
? start->quantity
|
||||||
: (results->winnersCount + results->unclaimedCount);
|
: (results->winnersCount + results->unclaimedCount);
|
||||||
|
|
Loading…
Add table
Reference in a new issue