Skip to content

Commit 1ba0694

Browse files
committed
Migrate InactiveRouteStylingActivity
1 parent 9bf5554 commit 1ba0694

File tree

4 files changed

+57
-52
lines changed

4 files changed

+57
-52
lines changed

libnavigation-core/api/current.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -337,13 +337,13 @@ package com.mapbox.navigation.core.lifecycle {
337337
method public com.mapbox.navigation.base.options.NavigationOptions createNavigationOptions();
338338
}
339339

340-
public final class RequireMapboxNavigationDelegate implements kotlin.properties.ReadOnlyProperty<androidx.lifecycle.LifecycleOwner,com.mapbox.navigation.core.MapboxNavigation> {
341-
ctor public RequireMapboxNavigationDelegate(com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? observer = null, kotlin.jvm.functions.Function0<kotlin.Unit>? onInitialize = null);
340+
public final class RequireMapboxNavigationProperty implements kotlin.properties.ReadOnlyProperty<androidx.lifecycle.LifecycleOwner,com.mapbox.navigation.core.MapboxNavigation> {
341+
ctor public RequireMapboxNavigationProperty(com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? onCreatedObserver = null, com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? onStartedObserver = null, com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? onResumedObserver = null, kotlin.jvm.functions.Function0<kotlin.Unit>? onInitialize = null);
342342
method public com.mapbox.navigation.core.MapboxNavigation getValue(androidx.lifecycle.LifecycleOwner thisRef, kotlin.reflect.KProperty<?> property);
343343
}
344344

345-
public final class RequireMapboxNavigationDelegateKt {
346-
method public static com.mapbox.navigation.core.lifecycle.RequireMapboxNavigationDelegate requireMapboxNavigation(com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? observer = null, kotlin.jvm.functions.Function0<kotlin.Unit> onInitialize);
345+
public final class RequireMapboxNavigationPropertyKt {
346+
method public static com.mapbox.navigation.core.lifecycle.RequireMapboxNavigationProperty requireMapboxNavigation(com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? onCreatedObserver = null, com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? onStartedObserver = null, com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver? onResumedObserver = null, kotlin.jvm.functions.Function0<kotlin.Unit> onInitialize);
347347
}
348348

349349
}

libnavigation-core/src/main/java/com/mapbox/navigation/core/lifecycle/RequireMapboxNavigationProperty.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mapbox.navigation.core.lifecycle
22

33
import androidx.lifecycle.DefaultLifecycleObserver
4+
import androidx.lifecycle.Lifecycle
45
import androidx.lifecycle.LifecycleOwner
56
import com.mapbox.navigation.core.MapboxNavigation
67
import kotlin.properties.ReadOnlyProperty
@@ -70,9 +71,9 @@ fun requireMapboxNavigation(
7071
* [MapboxNavigation] instance can be re-created with [MapboxNavigationApp.disable], or if all
7172
* [MapboxNavigationApp.attach] lifecycles are destroyed.
7273
*
73-
* @param onCreatedObserver to setup any subscriptions to [MapboxNavigation]
74-
* @param onStartedObserver to setup any subscriptions to [MapboxNavigation]
75-
* @param onResumedObserver to setup any subscriptions to [MapboxNavigation]
74+
* @param onCreatedObserver to setup any subscriptions when the lifecycle [Lifecycle.State.CREATED]
75+
* @param onStartedObserver to setup any subscriptions when the lifecycle [Lifecycle.State.STARTED]
76+
* @param onResumedObserver to setup any subscriptions when the lifecycle [Lifecycle.State.RESUMED]
7677
* @param onInitialize called after the lifecycle has been attached
7778
*/
7879
class RequireMapboxNavigationProperty(

qa-test-app/src/main/java/com/mapbox/navigation/qa_test_app/view/FeedbackActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class FeedbackActivity : AppCompatActivity() {
130130
}
131131

132132
private val mapboxNavigation by requireMapboxNavigation(
133-
observer = object : MapboxNavigationObserver {
133+
onCreatedObserver = object : MapboxNavigationObserver {
134134
override fun onAttached(mapboxNavigation: MapboxNavigation) {
135135
binding.mapView.location.apply {
136136
setLocationProvider(navigationLocationProvider)

qa-test-app/src/main/java/com/mapbox/navigation/qa_test_app/view/InactiveRouteStylingActivity.kt

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ import com.mapbox.maps.plugin.animation.camera
1717
import com.mapbox.maps.plugin.locationcomponent.location
1818
import com.mapbox.navigation.base.options.NavigationOptions
1919
import com.mapbox.navigation.core.MapboxNavigation
20-
import com.mapbox.navigation.core.MapboxNavigationProvider
20+
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
21+
import com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver
22+
import com.mapbox.navigation.core.lifecycle.requireMapboxNavigation
2123
import com.mapbox.navigation.core.replay.MapboxReplayer
2224
import com.mapbox.navigation.core.replay.ReplayLocationEngine
2325
import com.mapbox.navigation.core.replay.route.ReplayProgressObserver
@@ -56,15 +58,6 @@ class InactiveRouteStylingActivity : AppCompatActivity() {
5658
binding.mapView.camera
5759
}
5860

59-
private val mapboxNavigation: MapboxNavigation by lazy {
60-
MapboxNavigationProvider.create(
61-
NavigationOptions.Builder(this)
62-
.accessToken(Utils.getMapboxAccessToken(this))
63-
.locationEngine(ReplayLocationEngine(mapboxReplayer))
64-
.build()
65-
)
66-
}
67-
6861
private val routeLineColorResources by lazy {
6962
RouteLineColorResources.Builder()
7063
.inActiveRouteLegsColor(Color.YELLOW)
@@ -95,42 +88,63 @@ class InactiveRouteStylingActivity : AppCompatActivity() {
9588
MapboxRouteLineApi(options)
9689
}
9790

98-
override fun onCreate(savedInstanceState: Bundle?) {
99-
super.onCreate(savedInstanceState)
100-
setContentView(binding.root)
101-
102-
initNavigation()
103-
initStyle()
104-
initListeners()
105-
}
106-
107-
override fun onStop() {
108-
super.onStop()
109-
mapboxNavigation.unregisterRouteProgressObserver(replayProgressObserver)
110-
mapboxNavigation.unregisterRouteProgressObserver(routeProgressObserver)
111-
mapboxNavigation.unregisterLocationObserver(locationObserver)
112-
mapboxNavigation.stopTripSession()
113-
}
91+
private val mapboxNavigation by requireMapboxNavigation(
92+
onCreatedObserver = object : MapboxNavigationObserver {
93+
override fun onAttached(mapboxNavigation: MapboxNavigation) {
94+
initListeners()
95+
}
11496

115-
override fun onDestroy() {
116-
super.onDestroy()
117-
routeLineApi.cancel()
118-
routeLineView.cancel()
119-
mapboxReplayer.finish()
120-
mapboxNavigation.onDestroy()
97+
override fun onDetached(mapboxNavigation: MapboxNavigation) {
98+
mapboxNavigation.unregisterRouteProgressObserver(replayProgressObserver)
99+
mapboxNavigation.unregisterRouteProgressObserver(routeProgressObserver)
100+
mapboxNavigation.unregisterLocationObserver(locationObserver)
101+
mapboxNavigation.stopTripSession()
102+
}
103+
}
104+
) {
105+
MapboxNavigationApp.setup(
106+
NavigationOptions.Builder(this)
107+
.accessToken(Utils.getMapboxAccessToken(this))
108+
.locationEngine(ReplayLocationEngine(mapboxReplayer))
109+
.build()
110+
)
121111
}
122112

123-
private fun initNavigation() {
113+
@SuppressLint("MissingPermission")
114+
private fun initListeners() {
124115
binding.mapView.location.apply {
125116
setLocationProvider(navigationLocationProvider)
126117
enabled = true
127118
}
128119
mapboxNavigation.setRoutes(listOf(getRoute()))
129120
mapboxNavigation.registerLocationObserver(locationObserver)
130121
mapboxNavigation.registerRouteProgressObserver(replayProgressObserver)
131-
mapboxReplayer.pushRealLocation(this, 0.0)
122+
mapboxReplayer.pushRealLocation(
123+
this@InactiveRouteStylingActivity,
124+
0.0
125+
)
132126
mapboxReplayer.playbackSpeed(1.5)
133127
mapboxReplayer.play()
128+
binding.startNavigation.setOnClickListener {
129+
mapboxNavigation.registerRouteProgressObserver(routeProgressObserver)
130+
mapboxNavigation.startTripSession()
131+
binding.startNavigation.visibility = View.GONE
132+
startSimulation(mapboxNavigation.getRoutes()[0])
133+
}
134+
}
135+
136+
override fun onCreate(savedInstanceState: Bundle?) {
137+
super.onCreate(savedInstanceState)
138+
setContentView(binding.root)
139+
140+
initStyle()
141+
}
142+
143+
override fun onDestroy() {
144+
super.onDestroy()
145+
routeLineApi.cancel()
146+
routeLineView.cancel()
147+
mapboxReplayer.finish()
134148
}
135149

136150
private fun initStyle() {
@@ -177,16 +191,6 @@ class InactiveRouteStylingActivity : AppCompatActivity() {
177191
)
178192
}
179193

180-
@SuppressLint("MissingPermission")
181-
private fun initListeners() {
182-
binding.startNavigation.setOnClickListener {
183-
mapboxNavigation.registerRouteProgressObserver(routeProgressObserver)
184-
mapboxNavigation.startTripSession()
185-
binding.startNavigation.visibility = View.GONE
186-
startSimulation(mapboxNavigation.getRoutes()[0])
187-
}
188-
}
189-
190194
private val routeProgressObserver = RouteProgressObserver { routeProgress ->
191195

192196
// This is the most important part of this example. The route progress will be used to

0 commit comments

Comments
 (0)