diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 7cc78f5377..f2a47be760 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -6577,6 +6577,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_bot_earn_learn_credits_out_about" = "You can withdraw Stars using Fragment, or use Stars to advertise your bot. {link}"; "lng_self_earn_learn_credits_out_about" = "You can withdraw from 10 Stars using Fragment. {link}"; "lng_bot_earn_out_ph" = "Enter amount to withdraw"; +"lng_bot_earn_out_ph_max" = "Enter amount to withdraw (max. {amount})"; "lng_bot_earn_balance_password_title" = "Two-step verification"; "lng_bot_earn_balance_password_description" = "Please enter your password to collect."; "lng_bot_earn_credits_out_minimal" = "You cannot withdraw less than {link}."; diff --git a/Telegram/SourceFiles/main/main_app_config.cpp b/Telegram/SourceFiles/main/main_app_config.cpp index 0c5941edeb..8b11c58683 100644 --- a/Telegram/SourceFiles/main/main_app_config.cpp +++ b/Telegram/SourceFiles/main/main_app_config.cpp @@ -89,6 +89,10 @@ int AppConfig::starrefCommissionMax() const { return get(u"starref_max_commission_permille"_q, 900); } +int AppConfig::starsWithdrawMax() const { + return get(u"stars_revenue_withdrawal_max"_q, 100); +} + float64 AppConfig::starsWithdrawRate() const { return get(u"stars_usd_withdraw_rate_x1000"_q, 1300) / 1000.; } diff --git a/Telegram/SourceFiles/main/main_app_config.h b/Telegram/SourceFiles/main/main_app_config.h index 2e376125e8..537c9cfaee 100644 --- a/Telegram/SourceFiles/main/main_app_config.h +++ b/Telegram/SourceFiles/main/main_app_config.h @@ -69,6 +69,7 @@ public: [[nodiscard]] int starrefCommissionMin() const; [[nodiscard]] int starrefCommissionMax() const; + [[nodiscard]] int starsWithdrawMax() const; [[nodiscard]] float64 starsWithdrawRate() const; [[nodiscard]] float64 currencyWithdrawRate() const; [[nodiscard]] bool paidMessagesAvailable() const; diff --git a/Telegram/SourceFiles/settings/settings_credits_graphics.cpp b/Telegram/SourceFiles/settings/settings_credits_graphics.cpp index 2b37c0c749..ef1b2efbd8 100644 --- a/Telegram/SourceFiles/settings/settings_credits_graphics.cpp +++ b/Telegram/SourceFiles/settings/settings_credits_graphics.cpp @@ -2615,9 +2615,15 @@ void AddWithdrawalWidget( object_ptr>( container, object_ptr(container))); + const auto starsWithdrawMax = CreditsAmount( + controller->session().appConfig().starsWithdrawMax()); const auto input = Ui::AddInputFieldForCredits( withdrawalWrap->entity(), - rpl::duplicate(availableBalanceValue)); + rpl::duplicate( + availableBalanceValue + ) | rpl::map([=](CreditsAmount amount) { + return (amount > starsWithdrawMax) ? starsWithdrawMax : amount; + })); Ui::AddSkip(withdrawalWrap->entity()); Ui::AddSkip(withdrawalWrap->entity()); diff --git a/Telegram/SourceFiles/ui/effects/credits_graphics.cpp b/Telegram/SourceFiles/ui/effects/credits_graphics.cpp index e0baac5cc5..18e5c01eee 100644 --- a/Telegram/SourceFiles/ui/effects/credits_graphics.cpp +++ b/Telegram/SourceFiles/ui/effects/credits_graphics.cpp @@ -175,7 +175,11 @@ not_null AddInputFieldForCredits( const auto input = CreateChild( inputContainer, st, - tr::lng_bot_earn_out_ph(), + tr::lng_bot_earn_out_ph_max( + lt_amount, + currentValue.value() | rpl::map([](CreditsAmount amount) { + return QString::number(amount.whole()); + })), QString::number(currentValue.current().whole()), currentValue.current().whole()); rpl::duplicate(