Commit graph

13 commits

Author SHA1 Message Date
5b463f0ca6 Beads: lukk jvn (#5 kapasitetsfilter) som wontfix
Kapasitetstallene er ikke sikre nok til å ha denne typen verdi, og i en
krisesituasjon er det umulig å vite hvor mange ledige plasser det er.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FrDGDmN2WAXvNPS85rWJGK
2026-08-17 13:20:15 +02:00
32af7e04c4 Fiks desimalkomma i delingsteksten sin geo:-URI ved norsk locale
share_body brukte %3$.6f/%4$.6f, og Resources.getString() formaterer med
ressurs-locale — nb/nn gir desimalkomma, så delingsteksten inneholdt
"geo:59,918829,10,734887" (ugyldig URI) og en tvetydig koordinatlinje.
Bekreftet med jshell (Formatter + Locale nb) og på emulator.

Fiks: shareShelter() pre-formaterer lat/lon med Locale.US og sender dem
som %3$s/%4$s. Samme regel som openInMapApp() (daf8b62). PWA-en var
ikke rammet (toFixed er locale-uavhengig).

Verifisert i delingsarket på emulator (nb): "geo:59.918829,10.734887".

Forgejo: #20

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FrDGDmN2WAXvNPS85rWJGK
2026-08-17 13:02:18 +02:00
daf8b62d39 Åpne valgt tilfluktsrom i ekstern kartapp for gangvei
Ny knapp (ic_directions) ved siden av del-knappen i bunnarket. Fyrer
ACTION_VIEW med geo:lat,lon?q=lat,lon(Tilfluktsrom – adresse), som
håndteres av enhver installert kartapp — inkludert offline-kapable
OsmAnd/Organic Maps, viktig ved degradert nett. Ingen vendor-URL-er.

- Koordinater formateres med Locale.US så norsk systemspråk ikke gir
  desimalkomma i URI-en
- Fallback: ActivityNotFoundException → koordinater kopieres til
  klippebordet + Toast (navigate_no_map_app). startActivity+catch brukes
  framfor resolveActivity() for å slippe <queries> (pakkesynlighet API 30+)
- Strenger action_navigate / navigate_no_map_app i en/nb/nn
- 48dp berøringsflate og contentDescription som de andre ikonknappene

Verifisert på emulator (Pixel 6 API 35): trykk → START ACTION_VIEW
geo: → Google Maps åpnes.

Forgejo: #2

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FrDGDmN2WAXvNPS85rWJGK
2026-08-17 13:00:23 +02:00
2a0c9b49ce PWA: absolutte stier så dyplenker virker ved kald førstelast
shelter-repository.ts hentet './data/shelters.json' relativt. Under
/shelter/{romnr} løses det til /shelter/data/shelters.json; SPA-fallback
svarer med index.html (200 text/html), response.json() kaster,
refreshData() returnerer false og loadData() avbryter før
handleDeepLink() — førstegangsbesøkende via delt lenke fikk «Fant ikke
tilfluktsrommet» og tom liste.

Samme rotårsak i index.html (manifest.webmanifest, icons/icon-192.png)
og i manifestet (start_url/scope ".", icons "icons/…"): under en
dyplenke-rute ble manifestet index.html og «legg til på startskjerm»
uteble.

- shelter-repository.ts: `${import.meta.env.BASE_URL}data/shelters.json`
- index.html: /manifest.webmanifest, /icons/icon-192.png
- manifest.webmanifest: start_url "/", scope "/", icons "/icons/…"

Verifisert i ny Playwright-kontekst (tom IndexedDB): /shelter/1681 laster
/data/shelters.json (200 application/json), lista fylles og rommet velges.

Forgejo: #19

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FrDGDmN2WAXvNPS85rWJGK
2026-08-17 12:50:56 +02:00
6a50d86266 PWA: vis dyplenket tilfluktsrom nederst i lista med badge (hybrid)
Speiler Android-fiksen i 1fb9f14/337e9b9. Når en dyplenke eller
markørtap velger et tilfluktsrom utenfor de N nærmeste, ble det tidligere
unshift-et inn på indeks 0 og framstod som nærmest — uten forklaring.

Nå:
- app.ts: push i stedet for unshift på begge steder, valgt indeks = siste;
  ny modultilstand outsideNearestRomnr og renderShelterList()-helper
- shelter-list.ts: updateList() tar outsideNearestRomnr, tegner badge på
  den raden, prefikser badge-teksten i aria-label (samme rekkefølge som
  contentDescription i ShelterListAdapter.kt) og scrollIntoView() til
  valgt rad (auto i stedet for smooth ved prefers-reduced-motion)
- main.css: .shelter-item-badge med #BF360C (= warning_bg på Android,
  ~5.6:1 mot hvit → WCAG 2.2 AA SC 1.4.3)
- i18n en/nb/nn: shelter_outside_nearest_badge

Verifisert i Chromium (Playwright): posisjon Oslo, dyplenke /shelter/1681
(Vardø) → tre nærmeste først, fjerde rad med badge, selected og
aria-label "Selected (outside nearest). Kaigaten 8 …, 1487.1 km …".

Forgejo: #17

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FrDGDmN2WAXvNPS85rWJGK
2026-08-17 12:48:41 +02:00
890ea96ed8 Beads: defer jmv (Geonorge lokalId-utredning) til 2026-10-30
Praktisk konsekvens er løst — delingslenker bruker romnr. Resterende
arbeid er kommunikasjon mot Geonorge/DSB, ikke kritisk.
2026-04-30 13:16:44 +02:00
337e9b96c2 Bytt badge-bakgrunn til warning_bg for WCAG 2.2 AA-kontrast
Hvit fet 11sp tekst på shelter_primary (#FF6B35) gav ~2.84:1 kontrast,
under SC 1.4.3-terskelen på 4.5:1 for normaltekst (og marginalt under
3:1 for large text). warning_bg (#BF360C) er allerede dokumentert i
colors.xml med ~5.5:1 mot hvit.

Forgejo: #18
2026-04-29 16:55:15 +02:00
3f0c958b98 Beads: speil Android badge-kontrast-saken (#18 / 7zc) 2026-04-29 16:54:06 +02:00
40da1dfd6c Beads: speil PWA-saken (#17 / efo) 2026-04-29 16:52:24 +02:00
1fb9f14ad4 Vis dyplenket tilfluktsrom i lista, selv utenfor topp-3 (hybrid)
Når en dyplenke (eller markørtap) velger et tilfluktsrom som ikke er
blant de N nærmeste, blir det nå appendet til bunnpanelets liste med
et tydelig "Valgt – utenfor nærområdet"-badge, og lista scroller til
den valgte raden. Hvis valget er innenfor topp-N, scrollelementet
fortsatt synes — løser begge symptomene som rapporten pekte på.

Endringer:
- Ny ShelterListItem(swd, isOutsideNearest)-wrapper i adapteren
- ShelterListAdapter: viser badge + a11y-suffiks når isOutsideNearest=true
- item_shelter.xml: badge-TextView (orange bakgrunn, hvit tekst, gone som default)
- MainActivity: rebuildShelterList()-helper bygger top-N + maybe-appended,
  smoothScrollToPosition(selectedIdx) sikrer synlig markering
- Strings i en/nb/nn

Forgejo: #13
2026-04-29 16:49:28 +02:00
b31537df2c Beads: oppdater issues.jsonl etter at #16 (5vc) er lukket
Speiler statusendringen fra Dolt-databasen til snapshot-filen i git.
2026-04-29 16:15:36 +02:00
d2291a2d35 Fiks usynlig retningspil for brukerlokasjon på lyse kart
OSMDroid sin MyLocationNewOverlay brukte stock hvit person- og pil-
bitmap, som forsvant på lyse tiles (snø, sand, lyse OSM-temaer). Bytter
inn appens orange tema med hvit halo og myk skygge — silhuetten holder
≥3:1 kontrast (WCAG 2.2 AA, ikke-tekstlig innhold) mot både lyse og
mørke underlag.

- ic_user_dot.xml: stillestående (orange dot, hvit ring)
- ic_user_arrow.xml: i bevegelse (orange chevron, hvit kontur)
- drawableToBitmap-helper konverterer vector → Bitmap for OSMDroid
- setPersonAnchor/setDirectionAnchor (0.5, 0.5) sentrerer rotasjon

Forgejo: #16
2026-04-29 16:14:53 +02:00
91dd89c03d Verktøyoppsett: beads-issuetracker, AGENTS.md og Claude-innstillinger
Initialiserer beads (bd) som lokalt issue-spor med Dolt-historikk, og
legger til AGENTS.md + .claude/settings.json for konsistent agent-oppsett
på tvers av økter. Forgejo forblir kanonisk for offentlig samarbeid;
beads speiler issuene lokalt for AI-agent-bruk.

Endringer:
- .beads/: konfig, hooks, og initial issues.jsonl (11 saker speilet fra Forgejo, #1 og #7 lukket)
- .gitignore: ekskluder .dolt/, *.db og .beads-credential-key
- AGENTS.md: agentvennlig oppsummering av prosjektkonvensjoner
- CLAUDE.md: beads-integrasjonsblokk + sesjonsavslutningsprotokoll
- .claude/settings.json: Claude Code-innstillinger for prosjektet

Holder fdroid/-katalogen utenfor — F-Droid-distribusjon er pauset.
2026-04-29 16:03:50 +02:00