feat(crash): 崩溃界面适配用户深色模式

This commit is contained in:
Super12138 2025-02-11 17:21:40 +08:00
parent b193c285ce
commit b626c3d1a9

View file

@ -5,10 +5,18 @@ import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.core.view.WindowCompat
import cn.super12138.todo.R import cn.super12138.todo.R
import cn.super12138.todo.constants.GlobalValues
import cn.super12138.todo.logic.model.DarkMode
import cn.super12138.todo.logic.model.DarkMode.Dark
import cn.super12138.todo.logic.model.DarkMode.FollowSystem
import cn.super12138.todo.logic.model.DarkMode.Light
import cn.super12138.todo.ui.pages.crash.CrashPage import cn.super12138.todo.ui.pages.crash.CrashPage
import cn.super12138.todo.ui.theme.ToDoTheme import cn.super12138.todo.ui.theme.ToDoTheme
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -51,7 +59,22 @@ class CrashActivity : ComponentActivity() {
}.toString() }.toString()
setContent { setContent {
ToDoTheme { val darkMode = DarkMode.fromId(GlobalValues.darkMode)
val darkTheme = when (darkMode) {
FollowSystem -> isSystemInDarkTheme()
Light -> false
Dark -> true
}
// 配置状态栏和底部导航栏的颜色(在用户切换深色模式时)
// https://github.com/dn0ne/lotus/blob/master/app/src/main/java/com/dn0ne/player/MainActivity.kt#L266
LaunchedEffect(darkMode) {
WindowCompat.getInsetsController(window, window.decorView).apply {
isAppearanceLightStatusBars = !darkTheme
isAppearanceLightNavigationBars = !darkTheme
}
}
ToDoTheme(darkTheme = darkTheme) {
CrashPage( CrashPage(
crashLog = if (crashLogs == null) stringResource(R.string.tip_no_crash_logs) else crashLogFormatted, crashLog = if (crashLogs == null) stringResource(R.string.tip_no_crash_logs) else crashLogFormatted,
exitApp = { finishAffinity() }, exitApp = { finishAffinity() },