diff --git a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Settings.kt b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Settings.kt
index 427607b5..2c795bac 100644
--- a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Settings.kt
+++ b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Settings.kt
@@ -163,6 +163,8 @@ fun SettingScreen(navigator: DestinationsNavigator) {
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
+ val hasShownWarning = rememberSaveable { mutableStateOf(prefs.getBoolean("has_shown_warning", false)) }
+
var useOverlayFs by rememberSaveable {
mutableStateOf(
prefs.getBoolean("use_overlay_fs", false)
@@ -173,16 +175,41 @@ fun SettingScreen(navigator: DestinationsNavigator) {
var showRebootDialog by remember { mutableStateOf(false) }
+ var showWarningDialog by remember { mutableStateOf(false) }
+
SwitchItem(
icon = Icons.Filled.Build,
title = stringResource(id = R.string.use_overlay_fs),
summary = stringResource(id = R.string.use_overlay_fs_summary),
checked = useOverlayFs
) {
- prefs.edit().putBoolean("use_overlay_fs", it).apply()
- useOverlayFs = it
- if (isManager) install()
- showRebootDialog = true
+ if (!hasShownWarning.value) {
+ showWarningDialog = true
+ }
+ }
+
+ if (showWarningDialog) {
+ AlertDialog(
+ onDismissRequest = { showWarningDialog = false },
+ title = { Text(stringResource(R.string.warning)) },
+ text = { Text(stringResource(R.string.warning_message)) },
+ confirmButton = {
+ TextButton(onClick = {
+ showWarningDialog = false
+ prefs.edit().putBoolean("use_overlay_fs", !useOverlayFs).apply()
+ useOverlayFs = !useOverlayFs
+ if (isManager) install()
+ showRebootDialog = true
+ }) {
+ Text(stringResource(R.string.proceed))
+ }
+ },
+ dismissButton = {
+ TextButton(onClick = { showWarningDialog = false }) {
+ Text(stringResource(R.string.cancel))
+ }
+ }
+ )
}
if (showRebootDialog) {
@@ -206,6 +233,7 @@ fun SettingScreen(navigator: DestinationsNavigator) {
)
}
+
var checkUpdate by rememberSaveable {
mutableStateOf(
prefs.getBoolean("check_update", true)
diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml
index 4c4a172e..d5ac49fe 100644
--- a/manager/app/src/main/res/values/strings.xml
+++ b/manager/app/src/main/res/values/strings.xml
@@ -69,6 +69,10 @@
Toggle between using OverlayFS over Magic Mount for KernelSU Next\'s mount system.
Reboot Required
Changes will take effect after rebooting the system. Would you like to reboot now?
+ Warning
+ This feature is still in beta and under development. Please ensure you backup your modules before proceeding. Use this feature only if you understand the potential risks. Proceed with caution.
+ Proceed
+ Cancel
Later
🔥 Next build
https://github.com/rifsxd/KernelSU-Next