diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt
index 9d3f5fac..c8ff7c1a 100644
--- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt
+++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt
@@ -69,7 +69,12 @@ fun HomeScreen(navigator: DestinationsNavigator) {
)
)
}
- UpdateCard()
+ val checkUpdate =
+ LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE)
+ .getBoolean("check_update", true)
+ if (checkUpdate) {
+ UpdateCard()
+ }
InfoCard()
DonateCard()
LearnMoreCard()
diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt
index e64754a1..4cd76a48 100644
--- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt
+++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt
@@ -1,5 +1,6 @@
package me.weishu.kernelsu.ui.screen
+import android.content.Context
import android.content.Intent
import android.net.Uri
import androidx.compose.foundation.clickable
@@ -62,9 +63,9 @@ fun SettingScreen(navigator: DestinationsNavigator) {
ListItem(
leadingContent = { Icon(Icons.Filled.Fence, profileTemplate) },
headlineContent = { Text(profileTemplate) },
- supportingContent = { Text(stringResource(id = R.string.settings_profile_template_summary))},
+ supportingContent = { Text(stringResource(id = R.string.settings_profile_template_summary)) },
modifier = Modifier.clickable {
- navigator.navigate(AppProfileTemplateScreenDestination)
+ navigator.navigate(AppProfileTemplateScreenDestination)
}
)
@@ -82,8 +83,30 @@ fun SettingScreen(navigator: DestinationsNavigator) {
}
}
+ val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
+ var checkUpdate by rememberSaveable {
+ mutableStateOf(
+ prefs.getBoolean("check_update", true)
+ )
+ }
+ SwitchItem(
+ icon = Icons.Filled.RemoveModerator,
+ title = stringResource(id = R.string.settings_check_update),
+ summary = stringResource(id = R.string.settings_check_update_summary),
+ checked = checkUpdate
+ ) {
+ prefs.edit().putBoolean("check_update", it).apply()
+ checkUpdate = it
+ }
+
+
ListItem(
- leadingContent = { Icon(Icons.Filled.BugReport, stringResource(id = R.string.send_log)) },
+ leadingContent = {
+ Icon(
+ Icons.Filled.BugReport,
+ stringResource(id = R.string.send_log)
+ )
+ },
headlineContent = { Text(stringResource(id = R.string.send_log)) },
modifier = Modifier.clickable {
scope.launch {
@@ -117,7 +140,12 @@ fun SettingScreen(navigator: DestinationsNavigator) {
val about = stringResource(id = R.string.about)
ListItem(
- leadingContent = { Icon(Icons.Filled.ContactPage, stringResource(id = R.string.about)) },
+ leadingContent = {
+ Icon(
+ Icons.Filled.ContactPage,
+ stringResource(id = R.string.about)
+ )
+ },
headlineContent = { Text(about) },
modifier = Modifier.clickable {
showAboutDialog.value = true
diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml
index 3f7adb82..58add6e9 100644
--- a/manager/app/src/main/res/values/strings.xml
+++ b/manager/app/src/main/res/values/strings.xml
@@ -104,4 +104,6 @@
Failed to save template
Clipboard is empty!
Fetch changelog failed: %s
+ Check update
+ Automatically check for updates when opening the app