Rainytoken/app/src/main/java/com/rainy/token/MainActivity.kt
WaterRain 4107954080
feat: 应用内语言切换(跟随系统/简/繁/英)+ 繁体中文支持 + 应用名/署名分语言
- 新增 LocaleManager:语言偏好存 SharedPreferences,createConfigurationContext
  + LocaleList 包装 Application/MainActivity 的 attachBaseContext(零新依赖)
- 设置页新增语言卡片与选择对话框:跟随系统 / 简体中文 / 繁體中文 / English
- 新增繁体中文 values-b+zh+Hant(434 条,OpenCC s2twp 台湾标准转换+人工修正)
- 简体目录改为 values-b+zh+Hans(BCP-47,与繁体对称;AGP9 不接受 values-zh-Hans)
- widget_brand 可翻译:英=Rainy / 简繁=雨晴喵;app_name 可翻译:英=RainyToken / 简繁=雨晴Token
- 资源三语言 434/434/434 对齐,占位符零差异
2026-08-01 13:43:05 +00:00

40 lines
1.3 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.rainy.token
import android.content.Context
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import com.rainy.token.ui.RainyTokenNavHost
import com.rainy.token.ui.components.RainyBackground
import com.rainy.token.ui.theme.RainyTokenTheme
import dagger.hilt.android.AndroidEntryPoint
/**
* APP 入口。
*
* 布局策略:
* - 外层只套 RainyTokenTheme(统一品牌色 + 字体)
* - 再套 RainyBackground(樱粉渐变背景,全局共享)
* - NavHost 在背景之上,每个页面自己用 Scaffold 处理 TopAppBar 和 padding
* - **不**在外层再套 Scaffold —— 避免双 Scaffold 嵌套的 padding 计算混乱
*/
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
override fun attachBaseContext(newBase: Context) {
// 应用内语言偏好在此层生效:recreate() 后资源按所选语言重新解析
super.attachBaseContext(com.rainy.token.util.LocaleManager.wrapContext(newBase))
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
RainyTokenTheme {
RainyBackground {
RainyTokenNavHost()
}
}
}
}
}