diff --git a/app/src/main/java/net/vonforst/evmap/MapsActivity.kt b/app/src/main/java/net/vonforst/evmap/MapsActivity.kt
index f60aa1cc..093f72d4 100644
--- a/app/src/main/java/net/vonforst/evmap/MapsActivity.kt
+++ b/app/src/main/java/net/vonforst/evmap/MapsActivity.kt
@@ -1,5 +1,6 @@
package net.vonforst.evmap
+import android.app.PendingIntent
import android.content.ActivityNotFoundException
import android.content.Context
import android.content.Intent
@@ -111,56 +112,58 @@ class MapsActivity : AppCompatActivity(),
navController.graph = navGraph
return
} else {
+ var deepLink: PendingIntent? = null
+
+ if (intent?.scheme == "geo") {
+ val query = intent.data?.query?.split("=")?.get(1)
+ val coords = getLocationFromIntent(intent)
+
+ if (coords != null) {
+ val lat = coords[0]
+ val lon = coords[1]
+ deepLink = navController.createDeepLink()
+ .setGraph(R.navigation.nav_graph)
+ .setDestination(R.id.map)
+ .setArguments(MapFragmentArgs(latLng = LatLng(lat, lon)).toBundle())
+ .createPendingIntent()
+ } else if (query != null && query.isNotEmpty()) {
+ deepLink = navController.createDeepLink()
+ .setGraph(R.navigation.nav_graph)
+ .setDestination(R.id.map)
+ .setArguments(MapFragmentArgs(locationName = query).toBundle())
+ .createPendingIntent()
+ }
+ } else if (intent?.scheme == "https" && intent?.data?.host == "www.goingelectric.de") {
+ val id = intent.data?.pathSegments?.last()?.toLongOrNull()
+ if (id != null) {
+ deepLink = navController.createDeepLink()
+ .setGraph(R.navigation.nav_graph)
+ .setDestination(R.id.map)
+ .setArguments(MapFragmentArgs(chargerId = id).toBundle())
+ .createPendingIntent()
+ }
+ } else if (intent.hasExtra(EXTRA_CHARGER_ID)) {
+ deepLink = navController.createDeepLink()
+ .setDestination(R.id.map)
+ .setArguments(
+ MapFragmentArgs(
+ chargerId = intent.getLongExtra(EXTRA_CHARGER_ID, 0),
+ latLng = LatLng(
+ intent.getDoubleExtra(EXTRA_LAT, 0.0),
+ intent.getDoubleExtra(EXTRA_LON, 0.0)
+ )
+ ).toBundle()
+ )
+ .createPendingIntent()
+ }
+
navGraph.setStartDestination(R.id.map)
- navController.graph = navGraph
- }
-
-
- if (intent?.scheme == "geo") {
- val query = intent.data?.query?.split("=")?.get(1)
- val coords = getLocationFromIntent(intent)
-
- if (coords != null) {
- val lat = coords[0]
- val lon = coords[1]
- val deepLink = navController.createDeepLink()
- .setGraph(R.navigation.nav_graph)
- .setDestination(R.id.map)
- .setArguments(MapFragmentArgs(latLng = LatLng(lat, lon)).toBundle())
- .createPendingIntent()
- deepLink.send()
- } else if (query != null && query.isNotEmpty()) {
- val deepLink = navController.createDeepLink()
- .setGraph(R.navigation.nav_graph)
- .setDestination(R.id.map)
- .setArguments(MapFragmentArgs(locationName = query).toBundle())
- .createPendingIntent()
+ if (deepLink != null) {
+ navController.graph = navGraph
deepLink.send()
+ } else {
+ navController.setGraph(navGraph, MapFragmentArgs(appStart = true).toBundle())
}
- } else if (intent?.scheme == "https" && intent?.data?.host == "www.goingelectric.de") {
- val id = intent.data?.pathSegments?.last()?.toLongOrNull()
- if (id != null) {
- val deepLink = navController.createDeepLink()
- .setGraph(R.navigation.nav_graph)
- .setDestination(R.id.map)
- .setArguments(MapFragmentArgs(chargerId = id).toBundle())
- .createPendingIntent()
- deepLink.send()
- }
- } else if (intent.hasExtra(EXTRA_CHARGER_ID)) {
- navController.createDeepLink()
- .setDestination(R.id.map)
- .setArguments(
- MapFragmentArgs(
- chargerId = intent.getLongExtra(EXTRA_CHARGER_ID, 0),
- latLng = LatLng(
- intent.getDoubleExtra(EXTRA_LAT, 0.0),
- intent.getDoubleExtra(EXTRA_LON, 0.0)
- )
- ).toBundle()
- )
- .createPendingIntent()
- .send()
}
}
diff --git a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt
index 98397f61..3e44b6c2 100644
--- a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt
+++ b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt
@@ -250,6 +250,32 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac
// when there is already another navigation going on
}
}*/
+
+ val fragmentArgs: MapFragmentArgs by navArgs()
+ if (savedInstanceState == null && fragmentArgs.appStart) {
+ // logo animation after starting the app
+ binding.appLogo.root.visibility = View.VISIBLE
+ binding.appLogo.root.alpha = 0f
+ binding.search.visibility = View.GONE
+
+ binding.appLogo.root.animate().alpha(1f)
+ .withEndAction {
+ binding.appLogo.root.animate().alpha(0f).apply {
+ startDelay = 1000
+ }.withEndAction {
+ binding.appLogo.root.visibility = View.GONE
+ binding.search.visibility = View.VISIBLE
+ binding.search.alpha = 0f
+ binding.search.animate().alpha(1f).start()
+ }.start()
+ }.apply {
+ startDelay = 100
+ }.start()
+ arguments = fragmentArgs.copy(appStart = false).toBundle()
+ } else {
+ binding.appLogo.root.visibility = View.GONE
+ binding.search.visibility = View.VISIBLE
+ }
}
override fun onResume() {
diff --git a/app/src/main/res/layout/app_logo_small.xml b/app/src/main/res/layout/app_logo_small.xml
new file mode 100644
index 00000000..a6d36a13
--- /dev/null
+++ b/app/src/main/res/layout/app_logo_small.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml
index bbc6b90f..177a8fcd 100644
--- a/app/src/main/res/layout/fragment_map.xml
+++ b/app/src/main/res/layout/fragment_map.xml
@@ -69,13 +69,17 @@
android:layout_height="48dp"
app:contentInsetStartWithNavigation="70dp">
-
+ android:layout_height="match_parent">
+
+
-
-
+
+
+
+
+
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index 5ef69006..69de11ff 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -47,6 +47,10 @@
android:defaultValue="@null"
app:argType="com.car2go.maps.model.LatLng"
app:nullable="true" />
+