diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/activities/CrashActivity.kt b/app/src/main/kotlin/cn/super12138/todo/ui/activities/CrashActivity.kt index 08208c8..798a1f3 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/activities/CrashActivity.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/activities/CrashActivity.kt @@ -5,10 +5,18 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.core.view.WindowCompat 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.theme.ToDoTheme import java.text.SimpleDateFormat @@ -51,7 +59,22 @@ class CrashActivity : ComponentActivity() { }.toString() 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( crashLog = if (crashLogs == null) stringResource(R.string.tip_no_crash_logs) else crashLogFormatted, exitApp = { finishAffinity() },