Root-caused to SPI bus crosstalk from TFT/touch during radar-sweep
redraws - muting the software output did not silence the residual
hiss, confirming this is hardware EMI rather than a firmware logic
bug. All Sound-related files, settings, i18n strings, and menu
entries have been removed.
Unrelated fixes from the same session are kept: newly created
location presets (via address search, manual coordinates, or the
nearest-airport ticker) now activate immediately instead of leaving
the previous location active; the WebUI QR code moved from a
separate sub-screen onto the main info screen, centered under the
explanatory text.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bundles several small local follow-ups since v3.3.0:
- Radar screen aircraft detail panel: long lines (model name, distance
with km/nm/mi) now scroll horizontally instead of being cut off with
"..." (up to 9 independent scrolling lines, reusing the existing
InfoMarquee pattern).
- "Setup complete" screen: small centered "Tap to skip" hint below the
countdown button, translated into all 6 languages.
- Location Presets screen: long preset names/coordinates in the list
now scroll left-aligned instead of being truncated with "...".
- Address search confirmation screen: the found place name is no
longer hard-cut at 150 characters - it's now a vertically scrollable
paragraph (same pattern as the existing Location Presets info
screen), since it's multi-line wrapped text rather than a single
overflowing line.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The preset-name keypad (used both when adding a preset via manual
coordinates and after an address search) only showed "Name
(optional):" with no indication of what kind of name was expected.
Adds a localized hint line with example names (e.g. "Home, Work,
Holiday home") under the title in both runPresetNameKeypad()
(location_presets_screen.cpp) and runNameKeypad()
(address_search_screen.cpp), measuring the header height dynamically
via getCursorY() the same way runAddressKeyboard() already does, so
the input field and keyboard shift down to make room regardless of
translation length.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The address search screen previously gave no hint about the expected
input format and had no punctuation keys at all on either keyboard
page, making addresses like a house number "45/3" impossible to type.
Adds a localized format-hint line under the title, comma/hyphen keys
on the main keyboard, and swaps four rarely-needed accented letters on
the special-character page for "/", ".", "'", "-". The header and
input field position are now measured dynamically (getCursorY())
instead of assuming a fixed pixel offset, so longer translations of
the hint text don't overlap the keyboard.
Adds a new FirstRunCompleteScreen shown after the location setup step
on first boot: confirms setup is done, names the SD card folder all
data is stored in, and notes that WiFi will reconnect automatically
from now on, with a large "Flightradar" button leading into the app.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a new AddressSearchScreen: enter an address on a dedicated
keyboard (with a special-character page for common European accented
letters), geocode it via the free OpenStreetMap Nominatim service,
confirm the found place, optionally name it, and save it as a new
location preset - no external website needed anymore.
Reachable both from Location Presets > "+" (choice between "by
address" and manual coordinates) and, for new users, from a one-time
FirstRunLocationScreen shown right after the language picker on first
boot, explaining why an exact address beats automatic IP geolocation
and letting them set it up immediately (skippable).
Removes the itilog.com link/tip added in the previous commit (Location
Presets info screen, all 6 languages, and the README) - superseded by
this native in-app flow.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>