Fjern hjemmeskjerm-widget
Widgeten har vært en vedlikeholdskostnad uten et klart produktformål: den duplikerte lokasjonslogikken fra hovedappen, kunne vise inntil 24 timer gammel GPS-posisjon uten alderindikator, og krevde en egen WorkManager-periodisk oppdatering. Den strategiske vurderingen (2026-04-17) konkluderte med at den samme nytten kan leveres via app-åpning eller en lettere mekanisme senere, og at flaten bør krympes før pitch mot offentlig sektor. Denne endringen fjerner widget/-pakken for begge flavors (standard + fdroid), AppWidgetProvider-mottakeren i manifestet, WidgetUpdateWorker, androidx.work:work-runtime-ktx-avhengigheten, widget_prefs SharedPreferences-lagringen i MainActivity, samt widget_*-strenger og linjen om «for hjemmeskjerm-widgeten» i about-dialogen. Dokumentasjonen i CLAUDE.md, ARCHITECTURE.md, README.md, STANDING_ON_SHOULDERS.md og fastlane-beskrivelsene er justert tilsvarende. Historiske changelogs (v3, v5, v6, v7) er bevisst urørt — de beskriver korrekt hva som ble levert i de versjonene. Eksisterende widget-plasseringer på brukernes hjemmeskjerm forsvinner automatisk neste gang appen oppdateres; Android fjerner foreldreløse provider-komponenter uten migreringskode. Begge debug-flavors bygger rent etter endringen. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4e6c03c301
commit
0743eac9dd
19 changed files with 9 additions and 1111 deletions
|
|
@ -13,7 +13,6 @@ This document describes the architecture of Tilfluktsrom, a Norwegian emergency
|
|||
- [Compass System](#compass-system)
|
||||
- [Map & Tile Caching](#map--tile-caching)
|
||||
- [Build Variants](#build-variants)
|
||||
- [Home Screen Widget](#home-screen-widget)
|
||||
- [Deep Linking](#deep-linking)
|
||||
- [Progressive Web App](#progressive-web-app)
|
||||
- [Module Structure](#module-structure)
|
||||
|
|
@ -41,7 +40,7 @@ This is an emergency app. Core functionality — finding the nearest shelter, co
|
|||
The Android app runs on devices without Google Play Services (LineageOS, GrapheneOS, /e/OS). Every Google-specific API has an AOSP fallback. Play Services improve accuracy and battery life when available, but are never required.
|
||||
|
||||
### Minimal Dependencies
|
||||
Both platforms use few, well-chosen libraries. No heavy frameworks, no external CDNs at runtime. The PWA bundles everything locally; the Android app uses only OSMDroid, Room, OkHttp, and WorkManager.
|
||||
Both platforms use few, well-chosen libraries. No heavy frameworks, no external CDNs at runtime. The PWA bundles everything locally; the Android app uses only OSMDroid, Room, and OkHttp.
|
||||
|
||||
### Data Sovereignty
|
||||
Shelter data comes directly from Geonorge (the Norwegian mapping authority). No intermediate servers. The app fetches, converts, and caches the data locally.
|
||||
|
|
@ -107,15 +106,12 @@ no.naiv.tilfluktsrom/
|
|||
│ ├── ShelterListAdapter.kt # RecyclerView adapter for shelter list
|
||||
│ ├── CivilDefenseInfoDialog.kt # Emergency instructions
|
||||
│ └── AboutDialog.kt # Privacy and copyright
|
||||
├── util/
|
||||
│ ├── CoordinateConverter.kt # UTM33N → WGS84 (Karney method)
|
||||
│ └── DistanceUtils.kt # Haversine distance and bearing
|
||||
└── widget/
|
||||
├── ShelterWidgetProvider.kt # Home screen widget (flavor-specific)
|
||||
└── WidgetUpdateWorker.kt # WorkManager periodic update
|
||||
└── util/
|
||||
├── CoordinateConverter.kt # UTM33N → WGS84 (Karney method)
|
||||
└── DistanceUtils.kt # Haversine distance and bearing
|
||||
```
|
||||
|
||||
Files under `location/` and `widget/` have separate implementations per build variant:
|
||||
Files under `location/` have separate implementations per build variant:
|
||||
- `app/src/standard/java/` — Google Play Services variant
|
||||
- `app/src/fdroid/java/` — AOSP-only variant
|
||||
|
||||
|
|
@ -198,21 +194,6 @@ The `standard` flavor adds `com.google.android.gms:play-services-location`. Runt
|
|||
|
||||
Both flavors produce identical user experiences — `standard` achieves faster GPS fixes and better battery efficiency when Play Services are present.
|
||||
|
||||
### Home Screen Widget
|
||||
|
||||
**ShelterWidgetProvider** displays the nearest shelter's address, capacity, and distance. Updated by:
|
||||
|
||||
1. **MainActivity** — sends latest location on each GPS update
|
||||
2. **WorkManager** — `WidgetUpdateWorker` runs every 15 minutes, requests a fresh location fix
|
||||
3. **Manual** — user taps refresh button on the widget
|
||||
|
||||
**Location resolution (priority order):**
|
||||
1. Location from intent (WorkManager or MainActivity)
|
||||
2. FusedLocationProviderClient cache (standard)
|
||||
3. Active GPS request (10s timeout)
|
||||
4. LocationManager cache
|
||||
5. SharedPreferences saved location (max 24h old)
|
||||
|
||||
### Deep Linking
|
||||
|
||||
**HTTPS App Links:** `https://tilfluktsrom.naiv.no/shelter/{lokalId}`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue