Actionable banner når posisjon ikke er tilgjengelig
Tidligere sto statusteksten igjen på «Venter på GPS…» uansett om årsaken var manglende tillatelse, avslåtte stedstjenester eller bare at GPS-en ikke hadde fått fix ennå. For en nødsituasjonsapp er det en reell feilmodus: brukeren får ingen hint om hva som kan gjøres for å finne nærmeste tilfluktsrom. Ny noLocationBanner plasseres øverst i innholdsområdet (rett under statuslinjen) slik at den ikke kolliderer med de flytende handlingsknappene over bunnarket, og viser én av tre tilstander: 1. Tillatelse avslått eller ikke gitt — «Posisjonstilgang nødvendig for å finne nærmeste tilfluktsrom. Du kan også trykke på et merke i kartet.» + «Gi tilgang» som åpner ACTION_APPLICATION_DETAILS_SETTINGS. 2. Tillatelse gitt, men stedstjenester slått av — «Stedstjenester er slått av. Aktiver dem eller velg et tilfluktsrom fra kartet.» + «Aktiver» som åpner ACTION_LOCATION_SOURCE_SETTINGS. 3. Begge OK — banner er skjult og den eksisterende «Venter på GPS…»-teksten gjelder. Helperen updateLocationStatusBanner() kalles fra loadData(), permission-result-kallbacket og onResume(), slik at banneret oppdaterer seg både ved appstart, umiddelbart etter avslag, og når brukeren kommer tilbake fra systeminnstillingene. AlertDialog-en ved permanent avslag er fjernet til fordel for det ikke-modale banneret, som lar brukeren fortsatt pan-ne kartet og velge tilfluktsrom manuelt. Toasten på mykt avslag er beholdt som en kort bekreftelse. API-nivå-fallbacket bruker LocationManager.isLocationEnabled på API 28+, isProviderEnabled for GPS/Network på API 26–27. Verifisert på emulator i alle fire tilstander (avslag → App Settings, tjeneste-av → Posisjonsinnstillinger, gjenopprettet). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7ce0827e9f
commit
f0c4a1f5b4
5 changed files with 97 additions and 22 deletions
|
|
@ -30,7 +30,11 @@
|
|||
<string name="action_cache_now">Cache now</string>
|
||||
<string name="action_reset_navigation">Reset navigation view</string>
|
||||
<string name="action_share">Share shelter</string>
|
||||
<string name="action_grant_permission">Grant access</string>
|
||||
<string name="action_location_settings">Enable</string>
|
||||
<string name="warning_no_map_cache">No offline map cached. Map requires internet.</string>
|
||||
<string name="status_location_permission_needed">Location access needed to find the nearest shelter. You can also tap a marker on the map.</string>
|
||||
<string name="status_location_services_off">Location services are off. Enable them or pick a shelter from the map.</string>
|
||||
|
||||
<!-- Permissions -->
|
||||
<string name="permission_location_title">Location permission required</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue