From 8abd37a35c8028724bfe08881cfeed454e94783d Mon Sep 17 00:00:00 2001 From: weishu Date: Mon, 29 Jan 2024 21:33:24 +0800 Subject: [PATCH] manager: Add option to disable update close #1303 --- .../java/me/weishu/kernelsu/ui/screen/Home.kt | 7 +++- .../me/weishu/kernelsu/ui/screen/Settings.kt | 36 ++++++++++++++++--- manager/app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 40 insertions(+), 5 deletions(-) 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