Settings: move test notifications into hidden Debug section + dev flag
- Test-alert buttons moved out of the Alerts section into a Debug section. - Debug section only renders when the debug flag is on; completely hidden otherwise (no user-facing toggle). - Hidden toggle: tap Settings → About → Version five times to flip the flag (keychain + app-group storage, survives reinstall). - About section added with version/build number. - 35 tests pass.
This commit is contained in:
@@ -261,6 +261,7 @@ struct FuelStore {
|
||||
static let alertsEnabledKey = "fuelboard.alertsEnabled" // Bool
|
||||
static let alertsRadiusKey = "fuelboard.alertsRadius" // Double km
|
||||
static let alertsFuelKey = "fuelboard.alertsFuel" // FuelType raw value
|
||||
static let debugModeKey = "fuelboard.debugMode" // Bool — hidden dev flag
|
||||
static let onboardingCompletedKey = "fuelboard.onboardingCompleted" // Bool
|
||||
static let lastRefreshKey = "fuelboard.lastRefresh" // TimeInterval (seconds since 1970)
|
||||
|
||||
@@ -401,6 +402,22 @@ struct FuelStore {
|
||||
saveString(unit.rawValue, service: distanceUnitKey)
|
||||
}
|
||||
|
||||
// MARK: Debug mode
|
||||
|
||||
/// Hidden developer flag. NOT exposed in the UI: toggled by tapping the
|
||||
/// Settings → About → Version row five times. When on, the Settings tab
|
||||
/// shows the Debug section (test notification buttons); when off, that
|
||||
/// section is completely hidden from the UI. Stored keychain-first like
|
||||
/// every other small setting so it survives app deletion during the
|
||||
/// delete → reinstall test loop.
|
||||
static func loadDebugMode() -> Bool {
|
||||
loadString(service: debugModeKey) == "1"
|
||||
}
|
||||
|
||||
static func saveDebugMode(_ enabled: Bool) {
|
||||
saveString(enabled ? "1" : "0", service: debugModeKey)
|
||||
}
|
||||
|
||||
// MARK: Favourites
|
||||
|
||||
/// A favourite pins a station FOR ONE fuel type. Starring a row while
|
||||
|
||||
Reference in New Issue
Block a user