From 95ff30684de8ddacd5d9bf2744d7adb402a52dc6 Mon Sep 17 00:00:00 2001 From: rushiiMachine <33725716+rushiiMachine@users.noreply.github.com> Date: Sun, 6 Apr 2025 20:57:46 -0700 Subject: [PATCH] feat: don't show network warning dialog more than once per launch Fixes #80 --- .../ui/screens/patchopts/PatchOptionsModel.kt | 12 ++++++++++++ .../ui/screens/patchopts/PatchOptionsScreen.kt | 8 +++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsModel.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsModel.kt index b193bb8..9951e36 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsModel.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsModel.kt @@ -49,6 +49,15 @@ class PatchOptionsModel( debuggable = value } + // ---------- Other ---------- + var showNetworkWarningDialog by mutableStateOf(!alreadyShownNetworkWarning && isNetworkDangerous()) + private set + + fun hideNetworkWarning() { + showNetworkWarningDialog = false + alreadyShownNetworkWarning = true + } + // ---------- Config generation ---------- val isConfigValid by derivedStateOf { val invalidChecks = arrayOf( @@ -127,6 +136,9 @@ class PatchOptionsModel( } companion object { + // Global state to avoid showing the warning more than once per launch + private var alreadyShownNetworkWarning = false + private val PACKAGE_REGEX = """^[a-z]\w*(\.[a-z]\w*)+$""" .toRegex(RegexOption.IGNORE_CASE) } diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt index 6ab8ff5..c835c3c 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.* import androidx.compose.material3.* import androidx.compose.runtime.* -import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext @@ -67,12 +66,11 @@ class PatchOptionsScreen( context.requestNoBatteryOptimizations() } - var showNetworkWarningDialog by rememberSaveable { mutableStateOf(model.isNetworkDangerous()) } - if (showNetworkWarningDialog) { + if (model.showNetworkWarningDialog) { NetworkWarningDialog( - onConfirm = { showNetworkWarningDialog = false }, + onConfirm = model::hideNetworkWarning, onDismiss = { - showNetworkWarningDialog = false + model.hideNetworkWarning() navigator.pop() }, )