From edf3491f61fea1388d0005f79d4757d122e2587e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Thu, 18 Dec 2025 19:38:30 +0800 Subject: [PATCH] Default update track to beta for pre-release versions and use primary color for update badges --- .../io/nekohasekai/sfa/compose/ComposeActivity.kt | 2 +- .../compose/screen/settings/AppSettingsScreen.kt | 2 +- .../sfa/compose/screen/settings/SettingsScreen.kt | 2 +- .../java/io/nekohasekai/sfa/database/Settings.kt | 13 ++++++++++++- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sfa/compose/ComposeActivity.kt b/app/src/main/java/io/nekohasekai/sfa/compose/ComposeActivity.kt index 6356017..39311fc 100644 --- a/app/src/main/java/io/nekohasekai/sfa/compose/ComposeActivity.kt +++ b/app/src/main/java/io/nekohasekai/sfa/compose/ComposeActivity.kt @@ -475,7 +475,7 @@ class ComposeActivity : ComponentActivity(), ServiceConnection.Callback { NavigationBarItem( icon = { if (screen == Screen.Settings && hasUpdate) { - BadgedBox(badge = { Badge() }) { + BadgedBox(badge = { Badge(containerColor = MaterialTheme.colorScheme.primary) }) { Icon(screen.icon, contentDescription = null) } } else { diff --git a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/AppSettingsScreen.kt b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/AppSettingsScreen.kt index ead618b..92377ab 100644 --- a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/AppSettingsScreen.kt +++ b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/AppSettingsScreen.kt @@ -142,7 +142,7 @@ fun AppSettingsScreen(navController: NavController) { }, trailingContent = { if (hasUpdate) { - Badge { Text("New") } + Badge(containerColor = MaterialTheme.colorScheme.primary) { Text("New") } } }, modifier = diff --git a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt index 22e8671..ca9d733 100644 --- a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt +++ b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt @@ -105,7 +105,7 @@ fun SettingsScreen(navController: NavController) { }, trailingContent = { if (hasUpdate) { - Badge() + Badge(containerColor = MaterialTheme.colorScheme.primary) } }, modifier = diff --git a/app/src/main/java/io/nekohasekai/sfa/database/Settings.kt b/app/src/main/java/io/nekohasekai/sfa/database/Settings.kt index f20aaa0..ba7def4 100644 --- a/app/src/main/java/io/nekohasekai/sfa/database/Settings.kt +++ b/app/src/main/java/io/nekohasekai/sfa/database/Settings.kt @@ -2,6 +2,7 @@ package io.nekohasekai.sfa.database import androidx.room.Room import io.nekohasekai.sfa.Application +import io.nekohasekai.sfa.BuildConfig import io.nekohasekai.sfa.bg.ProxyService import io.nekohasekai.sfa.bg.VPNService import io.nekohasekai.sfa.constant.Path @@ -40,7 +41,17 @@ object Settings { var startedByUser by dataStore.boolean(SettingsKey.STARTED_BY_USER) var checkUpdateEnabled by dataStore.boolean(SettingsKey.CHECK_UPDATE_ENABLED) { true } - var updateTrack by dataStore.string(SettingsKey.UPDATE_TRACK) { "stable" } + var updateTrack by dataStore.string(SettingsKey.UPDATE_TRACK) { + val versionName = BuildConfig.VERSION_NAME.lowercase() + if (versionName.contains("-alpha") || + versionName.contains("-beta") || + versionName.contains("-rc") + ) { + "beta" + } else { + "stable" + } + } var disableMemoryLimit by dataStore.boolean(SettingsKey.DISABLE_MEMORY_LIMIT) var dynamicNotification by dataStore.boolean(SettingsKey.DYNAMIC_NOTIFICATION) { true } var useComposeUI by dataStore.boolean(SettingsKey.USE_COMPOSE_UI) { true }