feat(trae): INTL 显示美元用量额度 $0.00 / $1.00
- 详情页主余额与首页卡片新增「美元用量额度」行(basic_usage_limit/used) - 账户信息卡同步展示已用/总额美元额度 - 设备已实测:Free plan / $0.00 / $1.00 + 月请求配额
This commit is contained in:
parent
94bb4de0b4
commit
5a12f10d4e
@ -16,8 +16,8 @@ android {
|
||||
applicationId = "com.rainy.token"
|
||||
minSdk = 31
|
||||
targetSdk = 35
|
||||
versionCode = 39
|
||||
versionName = "1.7.19"
|
||||
versionCode = 40
|
||||
versionName = "1.7.20"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
||||
@ -174,9 +174,11 @@ class TraeRepository constructor(
|
||||
q.getNumber("advanced_model_request_limit")?.let { extras["intl.advanced_limit"] = trimNum(it) }
|
||||
q.getNumber("auto_completion_limit")?.let { extras["intl.auto_completion_limit"] = trimNum(it) }
|
||||
q.getNumber("basic_usage_limit")?.let { extras["intl.basic_usage_limit"] = trimNum(it) }
|
||||
q.getNumber("basic_usage_limit")?.let { extras["intl.dollar_limit"] = it.toString() }
|
||||
q.getNumber("bonus_usage_limit")?.let { extras["intl.bonus_usage_limit"] = trimNum(it) }
|
||||
}
|
||||
pack.getNumber("usage", "basic_usage_amount")?.let { extras["intl.basic_used"] = trimNum(it) }
|
||||
pack.getNumber("usage", "basic_usage_amount")?.let { extras["intl.dollar_used"] = it.toString() }
|
||||
pack.getNumber("usage", "bonus_usage_amount")?.let { extras["intl.bonus_used"] = trimNum(it) }
|
||||
pack.getNumber("usage", "credits_amount")?.let { extras["intl.credits_used"] = trimNum(it) }
|
||||
return@forEachIndexed
|
||||
|
||||
@ -218,6 +218,27 @@ private fun TraeDollarPlanSummary(extras: Map<String, String>) {
|
||||
color = inkMuted()
|
||||
)
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
val dollarUsed = extras["intl.dollar_used"]?.toDoubleOrNull()
|
||||
val dollarLimit = extras["intl.dollar_limit"]?.toDoubleOrNull()
|
||||
if (dollarLimit != null) {
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
verticalAlignment = Alignment.Bottom,
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
Text(
|
||||
text = stringResource(R.string.trae_intl_dollar_usage_title),
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
color = inkMuted()
|
||||
)
|
||||
Text(
|
||||
text = String.format(Locale.US, "\$%.2f / \$%.2f", dollarUsed ?: 0.0, dollarLimit),
|
||||
style = MaterialTheme.typography.headlineSmall,
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
}
|
||||
}
|
||||
TraeSplitLine(stringResource(R.string.trae_intl_premium_fast_title), extras["intl.premium_fast_limit"]?.toDoubleOrNull(), stringResource(R.string.trae_intl_quota_unit))
|
||||
TraeSplitLine(stringResource(R.string.trae_intl_premium_slow_title), extras["intl.premium_slow_limit"]?.toDoubleOrNull(), stringResource(R.string.trae_intl_quota_unit))
|
||||
TraeSplitLine(stringResource(R.string.trae_intl_advanced_title), extras["intl.advanced_limit"]?.toDoubleOrNull(), stringResource(R.string.trae_intl_quota_unit))
|
||||
|
||||
@ -1111,6 +1111,14 @@ private fun TraeIntlBigNumber(extras: Map<String, String>) {
|
||||
modifier = Modifier.padding(bottom = 8.dp)
|
||||
)
|
||||
Spacer(modifier = Modifier.height(6.dp))
|
||||
val dollarUsed = extras["intl.dollar_used"]?.toDoubleOrNull()
|
||||
val dollarLimit = extras["intl.dollar_limit"]?.toDoubleOrNull()
|
||||
if (dollarLimit != null) {
|
||||
InfoRow(
|
||||
label = stringResource(R.string.trae_intl_dollar_usage_title),
|
||||
value = String.format(Locale.US, "\$%.2f / \$%.2f", dollarUsed ?: 0.0, dollarLimit)
|
||||
)
|
||||
}
|
||||
val quotaUnit = stringResource(R.string.trae_intl_quota_unit)
|
||||
InfoRow(
|
||||
label = stringResource(R.string.trae_intl_premium_fast_title),
|
||||
@ -1548,6 +1556,17 @@ internal fun TraeAccountInfoCard(state: State) {
|
||||
add(stringResource(R.string.extra_label_pack_count) to it.toString())
|
||||
}
|
||||
if (extras["billing_mode"] == "dollar") {
|
||||
extras["intl.dollar_limit"]?.toDoubleOrNull()?.let { limit ->
|
||||
add(
|
||||
stringResource(R.string.trae_intl_dollar_usage_title) to
|
||||
String.format(
|
||||
Locale.US,
|
||||
"$%.2f / $%.2f",
|
||||
extras["intl.dollar_used"]?.toDoubleOrNull() ?: 0.0,
|
||||
limit
|
||||
)
|
||||
)
|
||||
}
|
||||
extras["intl.plan_name"]?.let {
|
||||
add(stringResource(R.string.trae_intl_plan_title) to it)
|
||||
}
|
||||
|
||||
@ -803,4 +803,5 @@
|
||||
<string name="trae_intl_no_checkin_title">国际版没有每日签到</string>
|
||||
<string name="trae_intl_no_checkin_desc">Trae 国际版按美元计费,使用月度请求额度,没有签到积分体系。</string>
|
||||
<string name="trae_intl_monthly_quota">月配额</string>
|
||||
<string name="trae_intl_dollar_usage_title">美元用量额度</string>
|
||||
</resources>
|
||||
@ -803,4 +803,5 @@
|
||||
<string name="trae_intl_no_checkin_title">國際版沒有每日簽到</string>
|
||||
<string name="trae_intl_no_checkin_desc">Trae 國際版按美元計費,使用月度請求額度,沒有簽到積分體系。</string>
|
||||
<string name="trae_intl_monthly_quota">月額度</string>
|
||||
<string name="trae_intl_dollar_usage_title">美元用量額度</string>
|
||||
</resources>
|
||||
@ -808,4 +808,5 @@
|
||||
<string name="trae_intl_no_checkin_title">International edition has no daily check-in</string>
|
||||
<string name="trae_intl_no_checkin_desc">TRAE International uses USD billing with monthly request quotas instead of credit check-ins.</string>
|
||||
<string name="trae_intl_monthly_quota">Monthly quota</string>
|
||||
<string name="trae_intl_dollar_usage_title">Dollar allowance</string>
|
||||
</resources>
|
||||
Loading…
Reference in New Issue
Block a user