Om-side (Android + PWA):
- Ny AboutDialog med personvernerklæring, datakjelder og opphavsrett
- Opphavsrett flytta frå sivilforsvardialogen til om-sida
- Tilgjengeleg via «Om denne appen»-lenke i sivilforsvarsdialogen (Android)
og ny om-knapp i statuslinja (PWA)
- Lokalisert til en/nb/nn
Personvern og sikkerheit:
- Lagra GPS-posisjon utløper etter 24 timar (widget_prefs)
- Widget viser «Trykk for å oppdatere» når posisjon manglar eller er utløpt
- Eigendefinert User-Agent (Tilfluktsrom/1.6.1) i OkHttp
- Content Security Policy (CSP) meta-tag i PWA
- Tenararbeidar bufrar berre HTTP 200-svar (ikkje opake)
- Kartbuffer-metadata runda til ~11km presisjon i localStorage
- crossorigin="anonymous" på Leaflet CSS
i18n-opprydding:
- Unicode-escapes erstatta med UTF-8-teikn i nb.ts og nn.ts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tilgjengelegheit (Android + PWA):
- Semantiske landemerke (header, main, aside, role=dialog)
- aria-live-regionar for statusoppdateringar og lasteoverlegg
- Fokusindikatorar (:focus-visible) og prefers-reduced-motion
- Auka trykkmål til 48dp (infoknapp, oppdater, del, widget)
- contentDescription på kart, kompass og framdriftsindikator
- aria-current og role=listitem på tilfluktsromliste
- Fokusfangst og fokusgjenoppretting i lasteoverlegg
- Ikkje-farge-indikator (▶) for valt tilfluktsrom
- Dynamisk lang-attributt basert på oppdaga språk
- Lokaliserte aria-label (en/nb/nn)
Nordindikator:
- DirectionArrowView teiknar diskret «N»-markør på omkrinsen
- Roterer uavhengig av hovudpila for kompasskalibrering
- Berre på stor kompassvisning, ikkje minipila
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Endrar «når alarmen går» til «hvis/om alarmen går» for å unngå
å implisere at ein nødsituasjon faktisk skjer.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Endrar widget-tidsstempel frå berre «14:32» til «Oppdatert 14:32»
slik at det er tydeleg at dette er siste oppdateringstidspunkt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Legg til contentDescription på tilfluktsrom-listeelement for TalkBack
- Erstatt emoji-kompassåtvaring med tilgjengeleg tekstresurs
- Vis «Ventar på GPS…» i staden for «—» ved ukjend avstand
- Legg til content_desc_shelter_item og compass_accuracy_warning-strengar (en/nb/nn)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ny info-knapp (ℹ) i statuslinja opnar ein dialog med sivilforsvars-
instruksjonar: viktig melding-signal, flyalarm, søk dekning, lytt til
NRK P1 på DAB-radio, og faren over-signal. Alt innhald er verifisert
mot offisielle DSB-retningslinjer og fungerer utan nett. Støttar alle
tre språk (en, nb, nn).
Fixes#4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Del tilfluktsrom via SMS/meldingsapper med adresse, kapasitet,
koordinatar og geo:-URI. Støttar tilfluktsrom://shelter/{id}
deep link for direkte navigering til eit tilfluktsrom.
Closes#3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Hybrid LocationProvider: prøver Play Services først, faller tilbake
til LocationManager for degooglede einingar (F-Droid-kompatibel)
- Dataferskheitsindikator i statuslinja med tre nivå (fersk/veke/gammal)
- Heimeskjerm-widget som viser næraste tilfluktsrom med avstand
- Personvernerklæring (PRIVACY.md) på engelsk og norsk
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use repeatOnLifecycle(STARTED) for location updates so GPS stops
when Activity is paused (battery conservation)
- Pair enableMyLocation/disableMyLocation with onResume/onPause
- Add low-pass filter for accelerometer+magnetometer compass fallback
to reduce arrow jitter
- Detect missing compass sensors and show warning instead of frozen
arrow
- Monitor compass accuracy via onAccuracyChanged and indicate
degraded readings
- Show permission rationale dialog using existing i18n strings
- Guide user to Settings when location permission is permanently
denied
- Check cacheMapArea return value and show banner on failure
- Add error handling around shelter Flow and location Flow collection
- Add contentDescription to direction arrow views for screen readers
- Use safe casts for system services (as? instead of as)
- Use explicit dark theme parent (Theme.Material3.Dark.NoActionBar)
instead of DayNight with hardcoded dark colors
- Add error_no_compass and direction_arrow_description strings in
en/nb/nn
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rework selection model so any shelter marker can be tapped to select,
not just the nearest three in the bottom sheet list
- Highlight selected shelter with a distinct amber marker icon
- Track user map interaction (pan/zoom) to prevent auto-recentering
- Add reset navigation FAB to re-fit map to user + selected shelter
- Add offline map cache prompt (OK/Skip) with warning banner and retry
- Rewrite MapCacheManager to use passive tile caching via map panning
- Respect system status bar with fitsSystemWindows
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Android app (Kotlin) that locates the nearest public shelter (tilfluktsrom)
in Norway. Designed for offline-first emergency use.
Features:
- Downloads and caches all 556 Norwegian shelter locations from Geonorge
- GPS-based nearest shelter finding with distance and bearing
- OSMDroid map with offline tile caching for surroundings
- Large directional compass arrow pointing to selected shelter
- Compass sensor integration for real-time direction updates
- Shows 3 nearest shelters with distance, capacity, and address
- Toggle between map view and compass/arrow view
- Auto-caches map tiles on first launch for offline use
- Weekly background data refresh with manual force-update
- i18n: Norwegian Bokmål, Nynorsk, and English
Technical:
- EPSG:25833 (UTM33N) → WGS84 coordinate conversion
- Haversine distance and bearing calculations
- Room database for shelter persistence
- Fused Location Provider for precise GPS
- Sensor fusion (rotation vector with accel+mag fallback) for compass
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>