diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5281277..fdba975 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,8 +16,8 @@ android { applicationId = "com.rainy.token" minSdk = 31 targetSdk = 35 - versionCode = 38 - versionName = "1.7.18" + versionCode = 39 + versionName = "1.7.19" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt b/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt index 72e490b..77dc0a6 100644 --- a/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt +++ b/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt @@ -1094,6 +1094,42 @@ private fun MainBalanceCard(state: State, service: ServiceType) { } } +@Composable +private fun TraeIntlBigNumber(extras: Map) { + val planName = extras["intl.plan_name"] ?: "Free plan" + Text( + text = planName, + style = MaterialTheme.typography.displayLarge, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colorScheme.onSurface + ) + Spacer(modifier = Modifier.width(6.dp)) + Text( + text = stringResource(R.string.trae_intl_monthly_quota), + style = MaterialTheme.typography.titleLarge, + color = inkMuted(), + modifier = Modifier.padding(bottom = 8.dp) + ) + Spacer(modifier = Modifier.height(6.dp)) + val quotaUnit = stringResource(R.string.trae_intl_quota_unit) + InfoRow( + label = stringResource(R.string.trae_intl_premium_fast_title), + value = (extras["intl.premium_fast_limit"] ?: "—") + " $quotaUnit" + ) + InfoRow( + label = stringResource(R.string.trae_intl_premium_slow_title), + value = (extras["intl.premium_slow_limit"] ?: "—") + " $quotaUnit" + ) + InfoRow( + label = stringResource(R.string.trae_intl_advanced_title), + value = (extras["intl.advanced_limit"] ?: "—") + " $quotaUnit" + ) + InfoRow( + label = stringResource(R.string.trae_intl_auto_completion_title), + value = (extras["intl.auto_completion_limit"] ?: "—") + " $quotaUnit" + ) +} + @Composable private fun BalanceBigNumber(balance: ServiceBalance?, service: ServiceType) { if (balance == null) { @@ -1104,20 +1140,24 @@ private fun BalanceBigNumber(balance: ServiceBalance?, service: ServiceType) { ) return } - Row(verticalAlignment = Alignment.Bottom) { - Text( - text = formatAmount(balance.amount), - style = MaterialTheme.typography.displayLarge, - fontWeight = FontWeight.Bold, - color = MaterialTheme.colorScheme.onSurface - ) - Spacer(modifier = Modifier.width(6.dp)) - Text( - text = balance.unit, - style = MaterialTheme.typography.titleLarge, - color = inkMuted(), - modifier = Modifier.padding(bottom = 8.dp) - ) + if (service == ServiceType.TRAE && balance.extras?.get("billing_mode") == "dollar") { + TraeIntlBigNumber(balance.extras) + } else { + Row(verticalAlignment = Alignment.Bottom) { + Text( + text = formatAmount(balance.amount), + style = MaterialTheme.typography.displayLarge, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colorScheme.onSurface + ) + Spacer(modifier = Modifier.width(6.dp)) + Text( + text = balance.unit, + style = MaterialTheme.typography.titleLarge, + color = inkMuted(), + modifier = Modifier.padding(bottom = 8.dp) + ) + } } if (!balance.isAvailable) { Spacer(modifier = Modifier.height(4.dp)) diff --git a/app/src/main/res/values-b+zh+Hans/strings.xml b/app/src/main/res/values-b+zh+Hans/strings.xml index abe73b2..d02a85e 100644 --- a/app/src/main/res/values-b+zh+Hans/strings.xml +++ b/app/src/main/res/values-b+zh+Hans/strings.xml @@ -802,4 +802,5 @@ 基础用量已用 国际版没有每日签到 Trae 国际版按美元计费,使用月度请求额度,没有签到积分体系。 + 月配额 \ No newline at end of file diff --git a/app/src/main/res/values-b+zh+Hant/strings.xml b/app/src/main/res/values-b+zh+Hant/strings.xml index af27a3d..21327ef 100644 --- a/app/src/main/res/values-b+zh+Hant/strings.xml +++ b/app/src/main/res/values-b+zh+Hant/strings.xml @@ -802,4 +802,5 @@ 基礎用量已用 國際版沒有每日簽到 Trae 國際版按美元計費,使用月度請求額度,沒有簽到積分體系。 + 月額度 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2ebfed2..e1e3938 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -807,4 +807,5 @@ Basic usage used International edition has no daily check-in TRAE International uses USD billing with monthly request quotas instead of credit check-ins. + Monthly quota \ No newline at end of file