From c92f78a5e8029bf0320bedc30a1a8f7811fe8c1c Mon Sep 17 00:00:00 2001 From: Nick Stefanelli Date: Tue, 5 May 2026 00:08:47 -0400 Subject: [PATCH] Auto-activate kiosk mode on launch when previously enabled When kiosk mode is enabled and the app is then force-quit, crashes, or the device reboots, the persisted setting in GRDB is loaded but never acted on at launch. The user has to manually re-toggle kiosk mode from settings. Restore kiosk mode in setup(using:) when settings.isKioskModeEnabled is true. enableKioskMode() is idempotent (guarded by !isKioskModeActive), so existing flows are unaffected. Fixes #4608 --- Sources/App/Kiosk/KioskModeManager.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Sources/App/Kiosk/KioskModeManager.swift b/Sources/App/Kiosk/KioskModeManager.swift index 5ee7060b6..b27414520 100644 --- a/Sources/App/Kiosk/KioskModeManager.swift +++ b/Sources/App/Kiosk/KioskModeManager.swift @@ -175,6 +175,13 @@ public final class KioskModeManager: ObservableObject { // Setup secret exit gesture overlay (always available when kiosk mode is active) setupSecretExitGesture(in: viewController) + // Restore kiosk mode if it was enabled before the app was last closed + if settings.isKioskModeEnabled, !isKioskModeActive { + Current.Log.info("Restoring kiosk mode from persisted settings") + enableKioskMode() + return + } + // Apply initial state if already in kiosk mode if isKioskModeActive { updateKioskModeLockdown(enabled: true)