fix: 日期格式与应用内语言同步 + DeepSeek 标签动态化(Codex review)

This commit is contained in:
WaterRain 2026-08-01 20:32:27 +00:00
parent 5e7942c5cc
commit f463751fb1
No known key found for this signature in database
4 changed files with 11 additions and 2 deletions

View File

@ -40,6 +40,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
@ -257,8 +258,11 @@ fun UsageOverviewScreen(
@Composable private fun DailyDetailRow(day: com.rainy.token.data.local.DailyStats) {
val datePattern = stringResource(R.string.date_format_md)
// 跟随系统语言(Locale.getDefault()),保证英文环境下日期符号与资源同语言
val utcFmt = remember(datePattern, Locale.getDefault()) { SimpleDateFormat(datePattern, Locale.getDefault()).apply { timeZone = java.util.TimeZone.getTimeZone("UTC") } }
// 从当前资源 configuration 取 locale(跟随应用内语言切换),
// 不能依赖 Locale.getDefault():LocaleManager 只覆写 activity Configuration,不改变 JVM 默认 locale
val configuration = LocalConfiguration.current
val activeLocale = remember(configuration) { configuration.locales[0] }
val utcFmt = remember(datePattern, activeLocale) { SimpleDateFormat(datePattern, activeLocale).apply { timeZone = java.util.TimeZone.getTimeZone("UTC") } }
Card(Modifier.fillMaxWidth(), RoundedCornerShape(12.dp), CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surface)) {
Row(Modifier.fillMaxWidth().padding(12.dp), verticalAlignment = Alignment.CenterVertically) {
Text(utcFmt.format(Date(day.dayTs)), style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.Medium, modifier = Modifier.weight(1f))

View File

@ -64,6 +64,9 @@ class OpenCodeGoWidgetProvider : AppWidgetProvider() {
// 避免 XML 静态文本由宿主进程按系统语言渲染造成中英混搭
views.setTextViewText(R.id.widget_brand, context.getString(R.string.widget_brand))
// DeepSeek 余额标签同样动态设置(静态 XML 文本由 Launcher 按系统语言解析)
views.setTextViewText(R.id.widget_ds_label, context.getString(R.string.widget_deepseek_balance))
// 点击左上角品牌 → 打开 APP;点击其它内容区域 → 切换服务;刷新按钮单独刷新。
val openAppIntent = Intent(context, MainActivity::class.java).apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP

View File

@ -195,6 +195,7 @@
android:adjustViewBounds="true"
android:layout_marginEnd="5dp" />
<TextView
android:id="@+id/widget_ds_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/widget_deepseek_balance"

View File

@ -216,6 +216,7 @@
android:layout_marginEnd="5dp" />
<TextView
android:id="@+id/widget_ds_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/widget_deepseek_balance"