@@ -6,6 +6,7 @@ import androidx.annotation.RestrictTo
66import androidx.annotation.VisibleForTesting
77import com.mapbox.common.Cancelable
88import com.mapbox.common.MapboxOptions
9+ import com.mapbox.common.MapboxTracing
910import com.mapbox.maps.plugin.InvalidViewPluginHostException
1011import com.mapbox.maps.plugin.MapPlugin
1112import com.mapbox.maps.plugin.MapPluginRegistry
@@ -384,60 +385,62 @@ internal class MapController : MapPluginProviderDelegate, MapControllable {
384385 mapView : MapView ? = null,
385386 ) {
386387 for (plugin in options.plugins) {
387- try {
388- val pluginObject = when (plugin.id) {
389- MAPBOX_GESTURES_PLUGIN_ID -> {
390- createGesturePlugin(options.context, options.attrs, options.mapOptions.pixelRatio)
388+ MapboxTracing .traceSync({ " $MAPS_SDK_TRACE_PREFIX createPlugin: ${plugin.id} " }) {
389+ try {
390+ val pluginObject = when (plugin.id) {
391+ MAPBOX_GESTURES_PLUGIN_ID -> {
392+ createGesturePlugin(options.context, options.attrs, options.mapOptions.pixelRatio)
393+ }
394+ MAPBOX_CAMERA_PLUGIN_ID -> {
395+ createCameraAnimationPlugin()
396+ }
397+ MAPBOX_ANNOTATION_PLUGIN_ID -> {
398+ createAnnotationPlugin()
399+ }
400+ MAPBOX_COMPASS_PLUGIN_ID -> {
401+ createCompassPlugin()
402+ }
403+ MAPBOX_ATTRIBUTION_PLUGIN_ID -> {
404+ createAttributionPlugin()
405+ }
406+ MAPBOX_LIFECYCLE_PLUGIN_ID -> {
407+ createLifecyclePlugin()
408+ }
409+ MAPBOX_LOCATION_COMPONENT_PLUGIN_ID -> {
410+ createLocationComponentPlugin()
411+ }
412+ MAPBOX_LOGO_PLUGIN_ID -> {
413+ createLogoPlugin()
414+ }
415+ MAPBOX_MAP_OVERLAY_PLUGIN_ID -> {
416+ createOverlayPlugin()
417+ }
418+ MAPBOX_SCALEBAR_PLUGIN_ID -> {
419+ createScaleBarPlugin()
420+ }
421+ MAPBOX_VIEWPORT_PLUGIN_ID -> {
422+ createViewportPlugin()
423+ }
424+ MAPBOX_INDOOR_SELECTOR_PLUGIN_ID -> {
425+ createIndoorSelectorPlugin()
426+ }
427+ else -> {
428+ plugin.instance
429+ ? : throw MapboxConfigurationException (" Custom non Mapbox plugins must have non-null `instance` parameter!" )
430+ }
391431 }
392- MAPBOX_CAMERA_PLUGIN_ID -> {
393- createCameraAnimationPlugin()
394- }
395- MAPBOX_ANNOTATION_PLUGIN_ID -> {
396- createAnnotationPlugin()
397- }
398- MAPBOX_COMPASS_PLUGIN_ID -> {
399- createCompassPlugin()
400- }
401- MAPBOX_ATTRIBUTION_PLUGIN_ID -> {
402- createAttributionPlugin()
403- }
404- MAPBOX_LIFECYCLE_PLUGIN_ID -> {
405- createLifecyclePlugin()
406- }
407- MAPBOX_LOCATION_COMPONENT_PLUGIN_ID -> {
408- createLocationComponentPlugin()
409- }
410- MAPBOX_LOGO_PLUGIN_ID -> {
411- createLogoPlugin()
412- }
413- MAPBOX_MAP_OVERLAY_PLUGIN_ID -> {
414- createOverlayPlugin()
415- }
416- MAPBOX_SCALEBAR_PLUGIN_ID -> {
417- createScaleBarPlugin()
418- }
419- MAPBOX_VIEWPORT_PLUGIN_ID -> {
420- createViewportPlugin()
421- }
422- MAPBOX_INDOOR_SELECTOR_PLUGIN_ID -> {
423- createIndoorSelectorPlugin()
424- }
425- else -> {
426- plugin.instance
427- ? : throw MapboxConfigurationException (" Custom non Mapbox plugins must have non-null `instance` parameter!" )
428- }
429- }
430- createPlugin(mapView, Plugin .Custom (plugin.id, pluginObject))
431- if (plugin is Plugin .Mapbox ) {
432- when (pluginObject) {
433- is CameraAnimationsPlugin -> mapboxMap.cameraAnimationsPlugin = pluginObject
434- is GesturesPlugin -> mapboxMap.gesturesPlugin = pluginObject
432+ createPlugin(mapView, Plugin .Custom (plugin.id, pluginObject))
433+ if (plugin is Plugin .Mapbox ) {
434+ when (pluginObject) {
435+ is CameraAnimationsPlugin -> mapboxMap.cameraAnimationsPlugin = pluginObject
436+ is GesturesPlugin -> mapboxMap.gesturesPlugin = pluginObject
437+ }
435438 }
439+ } catch (ex: NoClassDefFoundError ) {
440+ logI(TAG , PLUGIN_MISSING_TEMPLATE .format(plugin.id))
441+ } catch (ex: InvalidViewPluginHostException ) {
442+ logI(TAG , VIEW_HIERARCHY_MISSING_TEMPLATE .format(plugin))
436443 }
437- } catch (ex: NoClassDefFoundError ) {
438- logI(TAG , PLUGIN_MISSING_TEMPLATE .format(plugin.id))
439- } catch (ex: InvalidViewPluginHostException ) {
440- logI(TAG , VIEW_HIERARCHY_MISSING_TEMPLATE .format(plugin))
441444 }
442445 }
443446 }
0 commit comments