11package com.mapbox.navigation.ui.app.internal
22
3- import android.content.Context
43import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
54import com.mapbox.navigation.core.internal.extensions.attachCreated
65import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
@@ -17,9 +16,7 @@ import com.mapbox.navigation.ui.app.internal.controller.StateResetController
1716import com.mapbox.navigation.ui.app.internal.controller.TripSessionStarterStateController
1817import com.mapbox.navigation.ui.maps.internal.ui.RouteAlternativeComponent
1918import com.mapbox.navigation.ui.maps.internal.ui.RouteAlternativeContract
20- import com.mapbox.navigation.ui.utils.internal.datastore.NavigationDataStoreOwner
21- import com.mapbox.navigation.ui.voice.internal.MapboxAudioGuidance
22- import com.mapbox.navigation.ui.voice.internal.impl.MapboxAudioGuidanceImpl
19+ import com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance
2320import java.util.concurrent.atomic.AtomicBoolean
2421
2522@OptIn(ExperimentalPreviewMapboxNavigationAPI ::class )
@@ -55,8 +52,6 @@ object SharedApp {
5552
5653 @JvmOverloads
5754 fun setup (
58- context : Context ,
59- audioGuidance : MapboxAudioGuidance ? = null,
6055 routeAlternativeContract : RouteAlternativeContract ? = null
6156 ) {
6257 if (isSetup) return
@@ -69,7 +64,12 @@ object SharedApp {
6964 }
7065 )
7166 MapboxNavigationApp .lifecycleOwner.attachCreated(* navigationObservers)
72- MapboxNavigationApp .registerObserver(audioGuidance ? : defaultAudioGuidance(context))
67+
68+ // TODO Remove this from SharedApp. The components that use `MapboxAudioGuidance`
69+ // will "ensureAudioGuidanceRegistered". See the `ComponentInstaller.audioGuidanceButton`
70+ if (MapboxNavigationApp .getObservers(MapboxAudioGuidance ::class ).isEmpty()) {
71+ MapboxNavigationApp .registerObserver(MapboxAudioGuidance ())
72+ }
7373 }
7474
7575 fun tripSessionTransaction (updateSession : () -> Unit ) {
@@ -80,12 +80,4 @@ object SharedApp {
8080 updateSession()
8181 ignoreTripSessionUpdates.set(false )
8282 }
83-
84- private fun defaultAudioGuidance (context : Context ): MapboxAudioGuidance {
85- return MapboxAudioGuidanceImpl .create(context).also {
86- it.dataStoreOwner = NavigationDataStoreOwner (context, DEFAULT_DATA_STORE_NAME )
87- }
88- }
89-
90- private const val DEFAULT_DATA_STORE_NAME = " mapbox_navigation_preferences"
9183}
0 commit comments