@@ -8,6 +8,7 @@ import android.view.LayoutInflater
88import android.view.View
99import android.widget.FrameLayout
1010import androidx.annotation.UiThread
11+ import androidx.annotation.VisibleForTesting
1112import androidx.core.view.ViewCompat
1213import androidx.core.view.WindowInsetsCompat
1314import androidx.fragment.app.Fragment
@@ -22,26 +23,28 @@ import com.mapbox.navigation.base.options.NavigationOptions
2223import com.mapbox.navigation.core.internal.extensions.attachCreated
2324import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
2425import com.mapbox.navigation.core.replay.MapboxReplayer
25- import com.mapbox.navigation.dropin.actionbutton.ActionButtonsCoordinator
26- import com.mapbox.navigation.dropin.analytics.AnalyticsComponent
27- import com.mapbox.navigation.dropin.backpress.BackPressedComponent
2826import com.mapbox.navigation.dropin.databinding.MapboxNavigationViewLayoutBinding
29- import com.mapbox.navigation.dropin.infopanel.InfoPanelCoordinator
27+ import com.mapbox.navigation.dropin.internal.extensions.actionButtonsCoordinator
28+ import com.mapbox.navigation.dropin.internal.extensions.analyticsComponent
29+ import com.mapbox.navigation.dropin.internal.extensions.backPressedComponent
30+ import com.mapbox.navigation.dropin.internal.extensions.infoPanelCoordinator
31+ import com.mapbox.navigation.dropin.internal.extensions.leftFrameCoordinator
32+ import com.mapbox.navigation.dropin.internal.extensions.locationPermissionComponent
33+ import com.mapbox.navigation.dropin.internal.extensions.maneuverCoordinator
34+ import com.mapbox.navigation.dropin.internal.extensions.mapLayoutCoordinator
3035import com.mapbox.navigation.dropin.internal.extensions.navigationViewAccessToken
36+ import com.mapbox.navigation.dropin.internal.extensions.rightFrameCoordinator
37+ import com.mapbox.navigation.dropin.internal.extensions.roadNameCoordinator
38+ import com.mapbox.navigation.dropin.internal.extensions.scalebarPlaceholderCoordinator
39+ import com.mapbox.navigation.dropin.internal.extensions.speedLimitCoordinator
3140import com.mapbox.navigation.dropin.internal.extensions.toComponentActivity
3241import com.mapbox.navigation.dropin.internal.extensions.toViewModelStoreOwner
33- import com.mapbox.navigation.dropin.maneuver.ManeuverCoordinator
34- import com.mapbox.navigation.dropin.map.MapLayoutCoordinator
42+ import com.mapbox.navigation.dropin.internal.extensions.tripSessionComponent
3543import com.mapbox.navigation.dropin.map.MapViewObserver
36- import com.mapbox.navigation.dropin.map.scalebar.ScalebarPlaceholderCoordinator
3744import com.mapbox.navigation.dropin.navigationview.MapboxNavigationViewApi
3845import com.mapbox.navigation.dropin.navigationview.NavigationViewContext
3946import com.mapbox.navigation.dropin.navigationview.NavigationViewListener
4047import com.mapbox.navigation.dropin.navigationview.NavigationViewModel
41- import com.mapbox.navigation.dropin.permission.LocationPermissionComponent
42- import com.mapbox.navigation.dropin.roadname.RoadNameCoordinator
43- import com.mapbox.navigation.dropin.speedlimit.SpeedLimitCoordinator
44- import com.mapbox.navigation.dropin.tripsession.TripSessionComponent
4548import com.mapbox.navigation.ui.app.internal.SharedApp
4649import com.mapbox.navigation.ui.base.lifecycle.UIBinder
4750import com.mapbox.navigation.ui.utils.internal.lifecycle.ViewLifecycleRegistry
@@ -103,7 +106,8 @@ class NavigationView @JvmOverloads constructor(
103106
104107 private val viewModel: NavigationViewModel by lazyViewModel()
105108
106- private val navigationContext = NavigationViewContext (
109+ @VisibleForTesting
110+ internal val navigationContext = NavigationViewContext (
107111 context = context,
108112 lifecycleOwner = this ,
109113 viewModel = viewModel,
@@ -124,30 +128,24 @@ class NavigationView @JvmOverloads constructor(
124128
125129 MapboxNavigationApp .attach(this )
126130
127- val componentActivity = context.toComponentActivity()
128- attachCreated(
129- AnalyticsComponent (),
130- LocationPermissionComponent (componentActivity, navigationContext.store),
131- TripSessionComponent (lifecycle, navigationContext.store),
132- MapLayoutCoordinator (navigationContext, binding),
133- BackPressedComponent (
134- componentActivity.onBackPressedDispatcher,
135- navigationContext.store,
136- lifecycleOwner = this ,
137- ),
138- ScalebarPlaceholderCoordinator (navigationContext, binding.scalebarLayout),
139- ManeuverCoordinator (navigationContext, binding.guidanceLayout),
140- InfoPanelCoordinator (
141- navigationContext,
142- binding.infoPanelLayout,
143- binding.guidelineBottom
144- ),
145- ActionButtonsCoordinator (navigationContext, binding.actionListLayout),
146- SpeedLimitCoordinator (navigationContext, binding.speedLimitLayout),
147- RoadNameCoordinator (navigationContext, binding.roadNameLayout),
148- LeftFrameCoordinator (navigationContext, binding.emptyLeftContainer),
149- RightFrameCoordinator (navigationContext, binding.emptyRightContainer)
150- )
131+ val activity = context.toComponentActivity()
132+ navigationContext.apply {
133+ attachCreated(
134+ analyticsComponent(),
135+ locationPermissionComponent(activity),
136+ tripSessionComponent(),
137+ mapLayoutCoordinator(binding),
138+ backPressedComponent(activity),
139+ scalebarPlaceholderCoordinator(binding.scalebarLayout),
140+ maneuverCoordinator(binding.guidanceLayout),
141+ infoPanelCoordinator(binding.infoPanelLayout, binding.guidelineBottom),
142+ actionButtonsCoordinator(binding.actionListLayout),
143+ speedLimitCoordinator(binding.speedLimitLayout),
144+ roadNameCoordinator(binding.roadNameLayout),
145+ leftFrameCoordinator(binding.emptyLeftContainer),
146+ rightFrameCoordinator(binding.emptyRightContainer)
147+ )
148+ }
151149 }
152150
153151 private fun captureSystemBarsInsets () {
0 commit comments