Skip to content

Commit a126cea

Browse files
committed
Start migration
1 parent 1c2ab2b commit a126cea

File tree

2 files changed

+61
-28
lines changed

2 files changed

+61
-28
lines changed

app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ android {
6969

7070
dependencies {
7171
// Mapbox Navigation SDK
72-
implementation "com.mapbox.navigation:android:2.5.1"
72+
implementation "com.mapbox.navigation:android:2.8.0-alpha.2"
7373
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31"
7474
implementation "androidx.core:core-ktx:1.7.0"
7575
implementation "com.google.android.material:material:1.5.0"

app/src/main/java/com/mapbox/navigation/examples/alternative/ShowAlternativeRoutesActivity.kt

+60-27
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import android.location.Location
66
import android.os.Bundle
77
import android.view.View
88
import androidx.appcompat.app.AppCompatActivity
9+
import androidx.lifecycle.DefaultLifecycleObserver
10+
import androidx.lifecycle.LifecycleOwner
911
import androidx.lifecycle.lifecycleScope
1012
import com.mapbox.api.directions.v5.models.RouteOptions
1113
import com.mapbox.geojson.Point
@@ -26,8 +28,9 @@ import com.mapbox.navigation.base.route.RouterFailure
2628
import com.mapbox.navigation.base.route.RouterOrigin
2729
import com.mapbox.navigation.base.trip.model.RouteProgress
2830
import com.mapbox.navigation.core.MapboxNavigation
29-
import com.mapbox.navigation.core.MapboxNavigationProvider
3031
import com.mapbox.navigation.core.directions.session.RoutesObserver
32+
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
33+
import com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver
3134
import com.mapbox.navigation.core.replay.MapboxReplayer
3235
import com.mapbox.navigation.core.replay.ReplayLocationEngine
3336
import com.mapbox.navigation.core.replay.route.ReplayProgressObserver
@@ -240,13 +243,38 @@ class ShowAlternativeRoutesActivity : AppCompatActivity() {
240243
}
241244

242245
@SuppressLint("MissingPermission")
243-
override fun onCreate(savedInstanceState: Bundle?) {
244-
super.onCreate(savedInstanceState)
245-
binding = ActivityShowAlternativeRoutesBinding.inflate(layoutInflater)
246-
setContentView(binding.root)
246+
val navigationCreatedObserver = object : MapboxNavigationObserver {
247+
override fun onAttached(mapboxNavigation: MapboxNavigation) {
248+
this@ShowAlternativeRoutesActivity.mapboxNavigation = mapboxNavigation
249+
mapboxNavigation.startTripSession()
250+
}
251+
252+
override fun onDetached(mapboxNavigation: MapboxNavigation) {
253+
// mapboxNavigation is invalid
254+
}
255+
}
247256

248-
// initialize Mapbox Navigation
249-
mapboxNavigation = MapboxNavigationProvider.create(
257+
val navigationResumedObserver = object : MapboxNavigationObserver {
258+
override fun onAttached(mapboxNavigation: MapboxNavigation) {
259+
mapboxNavigation.registerLocationObserver(locationObserver)
260+
mapboxNavigation.registerRouteProgressObserver(replayProgressObserver)
261+
mapboxNavigation.registerRoutesObserver(routesObserver)
262+
mapboxNavigation.registerRouteAlternativesObserver(alternativesObserver)
263+
binding.mapView.gestures.addOnMapClickListener(mapClickListener)
264+
}
265+
266+
override fun onDetached(mapboxNavigation: MapboxNavigation) {
267+
mapboxNavigation.unregisterRouteProgressObserver(replayProgressObserver)
268+
mapboxNavigation.unregisterLocationObserver(locationObserver)
269+
mapboxNavigation.unregisterRoutesObserver(routesObserver)
270+
mapboxNavigation.unregisterRouteAlternativesObserver(alternativesObserver)
271+
binding.mapView.gestures.removeOnMapClickListener(mapClickListener)
272+
}
273+
}
274+
275+
init {
276+
// You can setup MapboxNavigation at any part of the app lifecycle.
277+
MapboxNavigationApp.setup(
250278
NavigationOptions.Builder(this)
251279
.accessToken(getString(R.string.mapbox_access_token))
252280
.locationEngine(ReplayLocationEngine(mapboxReplayer))
@@ -256,7 +284,31 @@ class ShowAlternativeRoutesActivity : AppCompatActivity() {
256284
.build()
257285
)
258286
.build()
259-
)
287+
).attach(this)
288+
289+
lifecycle.addObserver(object : DefaultLifecycleObserver {
290+
override fun onCreate(owner: LifecycleOwner) {
291+
MapboxNavigationApp.registerObserver(navigationCreatedObserver)
292+
}
293+
294+
override fun onResume(owner: LifecycleOwner) {
295+
MapboxNavigationApp.registerObserver(navigationResumedObserver)
296+
}
297+
298+
override fun onPause(owner: LifecycleOwner) {
299+
MapboxNavigationApp.unregisterObserver(navigationResumedObserver)
300+
}
301+
302+
override fun onDestroy(owner: LifecycleOwner) {
303+
MapboxNavigationApp.unregisterObserver(navigationCreatedObserver)
304+
}
305+
})
306+
}
307+
308+
override fun onCreate(savedInstanceState: Bundle?) {
309+
super.onCreate(savedInstanceState)
310+
binding = ActivityShowAlternativeRoutesBinding.inflate(layoutInflater)
311+
setContentView(binding.root)
260312

261313
binding.mapView.getMapboxMap().loadStyleUri(
262314
NavigationStyles.NAVIGATION_DAY_STYLE
@@ -270,33 +322,14 @@ class ShowAlternativeRoutesActivity : AppCompatActivity() {
270322
findRoute(originPoint, destinationPoint)
271323
}
272324

273-
binding.mapView.gestures.addOnMapClickListener(mapClickListener)
274325
replayOriginLocation()
275-
mapboxNavigation.startTripSession()
276-
}
277-
278-
override fun onStart() {
279-
super.onStart()
280-
mapboxNavigation.registerLocationObserver(locationObserver)
281-
mapboxNavigation.registerRouteProgressObserver(replayProgressObserver)
282-
mapboxNavigation.registerRoutesObserver(routesObserver)
283-
mapboxNavigation.registerRouteAlternativesObserver(alternativesObserver)
284-
}
285-
286-
override fun onStop() {
287-
super.onStop()
288-
mapboxNavigation.unregisterRouteProgressObserver(replayProgressObserver)
289-
mapboxNavigation.unregisterLocationObserver(locationObserver)
290-
mapboxNavigation.unregisterRoutesObserver(routesObserver)
291-
mapboxNavigation.unregisterRouteAlternativesObserver(alternativesObserver)
292326
}
293327

294328
override fun onDestroy() {
295329
super.onDestroy()
296330
routeLineApi.cancel()
297331
routeLineView.cancel()
298332
mapboxReplayer.finish()
299-
mapboxNavigation.onDestroy()
300333
}
301334

302335
/**

0 commit comments

Comments
 (0)