diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f411fb5..58bf2ed 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,11 +23,20 @@ + + + + + + + pendingDeepLinkShelterId = null + val shelter = shelters.find { it.lokalId == id } + if (shelter != null) { + selectShelterByData(shelter) + } else { + Toast.makeText(this@MainActivity, R.string.error_shelter_not_found, Toast.LENGTH_SHORT).show() + } + } currentLocation?.let { updateNearestShelters(it) } } } catch (e: CancellationException) { @@ -598,6 +643,35 @@ class MainActivity : AppCompatActivity(), SensorEventListener { } } + /** + * Share the currently selected shelter via ACTION_SEND. + * Includes address, capacity, geo: URI (for non-app recipients), + * and a tilfluktsrom:// deep link (for app users). + */ + private fun shareShelter() { + val selected = selectedShelter + if (selected == null) { + Toast.makeText(this, R.string.share_no_shelter, Toast.LENGTH_SHORT).show() + return + } + + val shelter = selected.shelter + val body = getString( + R.string.share_body, + shelter.adresse, + shelter.plasser, + shelter.latitude, + shelter.longitude + ) + + val shareIntent = Intent(Intent.ACTION_SEND).apply { + type = "text/plain" + putExtra(Intent.EXTRA_SUBJECT, getString(R.string.share_subject)) + putExtra(Intent.EXTRA_TEXT, body) + } + startActivity(Intent.createChooser(shareIntent, getString(R.string.action_share))) + } + /** Update the freshness indicator below the status bar with color-coded age. */ private fun updateFreshnessIndicator() { val lastUpdate = repository.getLastUpdateMs() diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml new file mode 100644 index 0000000..32f43dc --- /dev/null +++ b/app/src/main/res/drawable/ic_share.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index fefe456..821cc87 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -211,6 +211,16 @@ android:textSize="13sp" tools:text="1.2 km - 400 plasser - Rom 776" /> + + diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 59b9fcf..8bf7021 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -30,6 +30,7 @@ Lagre kart Lagre nå Tilbakestill navigasjonsvisning + Del tilfluktsrom Ingen frakoblet kart lagret. Kartet krever internett. @@ -41,6 +42,7 @@ Kunne ikke laste ned tilfluktsromdata. Sjekk internettforbindelsen. Ingen lagrede data tilgjengelig. Koble til internett for å laste ned tilfluktsromdata. Kompass er ikke tilgjengelig på denne enheten + Fant ikke tilfluktsrommet Tilfluktsromdata oppdatert Oppdatering mislyktes — bruker lagrede data @@ -55,6 +57,11 @@ Data er %d dager gammel Data er utdatert + + Tilfluktsrom + Tilfluktsrom: %1$s\n%2$d plasser\n%3$.6f, %4$.6f\ngeo:%3$.6f,%4$.6f + Ingen tilfluktsrom valgt + Retning til tilfluktsrom, %s unna diff --git a/app/src/main/res/values-nn/strings.xml b/app/src/main/res/values-nn/strings.xml index d1dc1a0..7fefd34 100644 --- a/app/src/main/res/values-nn/strings.xml +++ b/app/src/main/res/values-nn/strings.xml @@ -30,6 +30,7 @@ Lagre kart Lagre no Tilbakestill navigasjonsvising + Del tilfluktsrom Ingen fråkopla kart lagra. Kartet krev internett. @@ -41,6 +42,7 @@ Kunne ikkje laste ned tilfluktsromdata. Sjekk internettilkoplinga. Ingen lagra data tilgjengeleg. Kopla til internett for å laste ned tilfluktsromdata. Kompass er ikkje tilgjengeleg på denne eininga + Fann ikkje tilfluktsrommet Tilfluktsromdata oppdatert Oppdatering mislukkast — brukar lagra data @@ -55,6 +57,11 @@ Data er %d dagar gammal Data er utdatert + + Tilfluktsrom + Tilfluktsrom: %1$s\n%2$d plassar\n%3$.6f, %4$.6f\ngeo:%3$.6f,%4$.6f + Ingen tilfluktsrom valt + Retning til tilfluktsrom, %s unna diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 80d4f9d..6fbf843 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -30,6 +30,7 @@ Cache map Cache now Reset navigation view + Share shelter No offline map cached. Map requires internet. @@ -41,6 +42,7 @@ Could not download shelter data. Check your internet connection. No cached data available. Connect to the internet to download shelter data. Compass not available on this device + Shelter not found Shelter data updated Update failed — using cached data @@ -55,6 +57,11 @@ Data is %d days old Data is outdated + + Emergency shelter + Shelter: %1$s\n%2$d places\n%3$.6f, %4$.6f\ngeo:%3$.6f,%4$.6f + No shelter selected + Direction to shelter, %s away diff --git a/version.properties b/version.properties index 4536802..5320a1d 100644 --- a/version.properties +++ b/version.properties @@ -1,4 +1,4 @@ versionMajor=1 -versionMinor=2 +versionMinor=3 versionPatch=0 -versionCode=3 +versionCode=4