App type changed to widget for glance support. GlanceView shows
event type, date/time, and street+housenumber (or coordinates as
fallback). Addresses are cached in Event storage on first view in
history. Glance-required modules annotated with (:glance). Address
distance threshold raised to 70m.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3-section layout (15/70/15) for browsing recorded events.
Reverse-geocodes coordinates via Photon API with Haversine
distance check and address caching. Also adds simulator GPS
polling fallback (Position.getInfo) since the simulator does
not fire location event callbacks.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GpsService runs a single-shot position request with a hard timeout
and early-exit when Config.GPS_TARGET_ACCURACY_M is reached.
LoadingView renders a circular progress bar around the edge plus the
"Standort wird bestimmt" prompt; on callback it persists a new Event
via EventStore.add and transitions to SuccessView (green checkmark,
short vibration, auto-close) or ErrorView (red alert, 3× vibration,
German message, longer hold). TextUtils extracts the shared
multi-line centered text rendering so MenuView, LoadingView and
ErrorView all render wrapped German text consistently. Positioning
permission added to manifest.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Verifies the toolchain: builds and runs on fenix7 simulator and
Forerunner 265 hardware. No features yet — empty view rendering
"Einsatzprotokoll" on black background.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>