## New
- "Welcome" screen shown on first-time setup (before touch
calibration), with the splash screen's animated radar graphic and a
Start button.
- The "Setup complete" screen now counts down 7 seconds with a button
matching the Welcome screen's style, then automatically continues
into the app (previously required a tap).
- System menu "Backup & Reset" page (Backup, Restore, and a new
"Reset settings" option that wipes the on-device data and re-runs
first-time setup - useful for testing or handing the device to
someone else).
- Touch calibration targets are now green mini radar reticles instead
of red crosshairs.
## Improved
- The SD card's data folder is now only created after tapping Start
on the Welcome screen, instead of on every boot regardless.
- Flash partition layout changed to free up roughly 850 KB of
firmware space (no OTA update slot needed, since firmware is always
flashed via cable/USB) - lowers flash usage from ~95% to ~59%.
## Fixed
- The Start button and the WiFi scanning screen now show a loading
indicator instead of appearing frozen during SD-card/WiFi
operations.
- A touch-input bug during first-time setup that could corrupt touch
calibration and cause taps to land on the wrong on-screen element
afterward (most noticeable in the WiFi network selection list).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Moves the previously standalone "Backup settings"/"Restore settings"
buttons out of the System menu into a new "Backup & Reset" sub-page
(replaced in the System menu by a single folder button, placed
directly above "Info"), and adds a third entry "Reset settings" - a
factory reset for developers/testers that deletes the entire
Flightradar folder from the SD card (settings, logbook, location
presets, WiFi, calibration - everything) and restarts the device. The
next boot picks up isFirstRun automatically (via the missing
SD_SETTINGS_FILE) and runs the full first-time setup again, exactly
like on the very first boot - no need to pull the SD card.
Since this is irreversible, it requires a full-screen red warning
confirmation first, reusing the same overlay previously built only for
the flight-logbook enable warning (confirmLogbookEnable() generalized
to confirmWarningScreen(), taking title/body StringIds as parameters).
New SdStorage::deleteDirectoryRecursive() and
SettingsBackup::factoryReset() implement the actual deletion + restart.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>