├── .editorconfig
├── .gitattributes
├── .github
├── CODEOWNERS
├── ISSUE_TEMPLATE
│ ├── feature.md
│ └── issue_template.md
├── pull_request_template.md
├── stale.yml
└── workflows
│ └── codeql.yml
├── .gitignore
├── CHANGELOG.md
├── CODE-OF-CONDUCT.md
├── CONTRIBUTING.md
├── DEVELOPING.md
├── LICENSE.md
├── Makefile
├── README.md
├── android-auto-app
├── build.gradle.kts
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── testapp
│ │ └── auto
│ │ ├── app
│ │ └── MainActivity.kt
│ │ ├── car
│ │ ├── CarAnimationThreadController.kt
│ │ ├── CarCameraController.kt
│ │ ├── CarLocationPuck.kt
│ │ ├── CarMapShowcase.kt
│ │ ├── CarMapWidgets.kt
│ │ ├── MapScreen.kt
│ │ ├── MapSession.kt
│ │ ├── RequestPermissionScreen.kt
│ │ ├── RetryScreen.kt
│ │ └── SearchScreen.kt
│ │ ├── service
│ │ └── MapboxCarAppService.kt
│ │ └── testing
│ │ └── CarJavaInterfaceChecker.java
│ └── res
│ ├── drawable
│ ├── ic_pan_24.xml
│ ├── ic_zoom_in_24.xml
│ └── ic_zoom_out_24.xml
│ ├── layout
│ └── activity_main.xml
│ ├── mipmap-anydpi-v26
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── values
│ ├── ic_launcher_background.xml
│ ├── strings.xml
│ └── themes.xml
│ └── xml
│ └── automotive_app_desc.xml
├── app
├── build.gradle.kts
├── lint.xml
├── permission.json
├── proguard-rules.pro
└── src
│ ├── androidTest
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── testapp
│ │ │ ├── BaseMapTest.kt
│ │ │ ├── CameraForCoordinatesTest.kt
│ │ │ ├── ExampleOverviewActivityTest.kt
│ │ │ ├── GeoJsonSourceMutateTest.kt
│ │ │ ├── LoadStyleCallbackTest.kt
│ │ │ ├── Utils.kt
│ │ │ ├── annotation
│ │ │ ├── InteractionsTest.kt
│ │ │ ├── UpdateAnnotationTest.kt
│ │ │ ├── UpdateAnnotationWithMultiManagersTest.kt
│ │ │ └── generated
│ │ │ │ ├── CircleAnnotationManagerAndroidTest.kt
│ │ │ │ ├── PointAnnotationManagerAndroidTest.kt
│ │ │ │ ├── PolygonAnnotationManagerAndroidTest.kt
│ │ │ │ └── PolylineAnnotationManagerAndroidTest.kt
│ │ │ ├── attribution
│ │ │ ├── AttributionAppCompatThemeTest.kt
│ │ │ ├── AttributionMaterialThemeTest.kt
│ │ │ ├── BaseAttributionThemeTest.kt
│ │ │ └── generated
│ │ │ │ ├── AttributionAttributeParserDefaultValueTest.kt
│ │ │ │ └── AttributionAttributeParserTest.kt
│ │ │ ├── compass
│ │ │ └── generated
│ │ │ │ ├── CompassAttributeParserDefaultValueTest.kt
│ │ │ │ └── CompassAttributeParserTest.kt
│ │ │ ├── featurestate
│ │ │ └── FeatureStateTest.kt
│ │ │ ├── gestures
│ │ │ ├── GestureActivityTest.kt
│ │ │ ├── GestureInterceptedOnViewAnnotationTest.kt
│ │ │ ├── GestureMapIdleTest.kt
│ │ │ ├── GestureUiUtils.kt
│ │ │ └── generated
│ │ │ │ ├── GesturesAttributeParserDefaultValueTest.kt
│ │ │ │ └── GesturesAttributeParserTest.kt
│ │ │ ├── integration
│ │ │ ├── BaseReuseIntegrationTest.kt
│ │ │ ├── events
│ │ │ │ └── StyleLoadedEventTest.kt
│ │ │ ├── fragment
│ │ │ │ ├── EmptyFragment.kt
│ │ │ │ ├── FragmentScenarioTest.kt
│ │ │ │ ├── FragmentTest.kt
│ │ │ │ └── MapFragment.kt
│ │ │ ├── surface
│ │ │ │ ├── MapViewSurfaceModeTest.kt
│ │ │ │ ├── MapViewSurfaceModeWithRecyclerViewTest.kt
│ │ │ │ └── SurfaceTest.kt
│ │ │ └── texture
│ │ │ │ └── MapViewTextureModeTest.kt
│ │ │ ├── locationcomponent
│ │ │ └── generated
│ │ │ │ ├── LocationComponentAttributeParserDefaultValueTest.kt
│ │ │ │ └── LocationComponentAttributeParserTest.kt
│ │ │ ├── logo
│ │ │ └── generated
│ │ │ │ ├── LogoAttributeParserDefaultValueTest.kt
│ │ │ │ └── LogoAttributeParserTest.kt
│ │ │ ├── observable
│ │ │ └── ObservableEventsTest.kt
│ │ │ ├── overlay
│ │ │ └── MapOverlayPluginTest.kt
│ │ │ ├── scalebar
│ │ │ └── generated
│ │ │ │ ├── ScaleBarAttributeParserDefaultValueTest.kt
│ │ │ │ └── ScaleBarAttributeParserTest.kt
│ │ │ └── viewport
│ │ │ └── ViewportPluginTest.kt
│ └── res
│ │ └── layout
│ │ └── view_annotation.xml
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── annotations.json
│ ├── dva-sf-construction.geojson
│ ├── dva-sf-parkings.geojson
│ ├── dva-sf-route-alternative.geojson
│ ├── dva-sf-route-main.geojson
│ ├── ego_car.glb
│ ├── fragment-realestate-NY.json
│ ├── from_crema_to_council_crest.geojson
│ ├── long_route.json
│ ├── maine_polygon.geojson
│ ├── multiple_geometry_example.geojson
│ ├── navigation_route.json
│ ├── sf_airport_route.geojson
│ └── sportcar.glb
│ ├── cpp
│ ├── CMakeLists.txt
│ └── example_custom_layer.cpp
│ ├── ic_launcher-web.png
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── testapp
│ │ ├── EmptyActivity.kt
│ │ ├── EmptyFragmentActivity.kt
│ │ ├── ExampleOverviewActivity.kt
│ │ ├── MapboxApplication.kt
│ │ ├── TestMapActivity.kt
│ │ ├── adapter
│ │ ├── ExampleAdapter.kt
│ │ └── ExampleSectionAdapter.kt
│ │ ├── examples
│ │ ├── AnimatedImageSourceActivity.kt
│ │ ├── BasicLocationPulsingCircleActivity.kt
│ │ ├── CircleLayerClusteringActivity.kt
│ │ ├── ClipLayerActivity.kt
│ │ ├── CustomAttributionActivity.kt
│ │ ├── DSLStylingActivity.kt
│ │ ├── DebugModeActivity.kt
│ │ ├── DistanceExpressionActivity.kt
│ │ ├── FragmentBackStackActivity.kt
│ │ ├── GeoJsonLayerInStackActivity.kt
│ │ ├── GesturesActivity.kt
│ │ ├── IconPropertyActivity.kt
│ │ ├── ImageSourceActivity.kt
│ │ ├── InsetMapActivity.kt
│ │ ├── JavaInterfaceChecker.java
│ │ ├── LargeGeojsonPerformanceActivity.kt
│ │ ├── LegacyOfflineActivity.kt
│ │ ├── LocationComponentActivity.kt
│ │ ├── LocationComponentAnimationActivity.kt
│ │ ├── LocationComponentModelAnimationActivity.kt
│ │ ├── LocationTrackingActivity.kt
│ │ ├── MapOverlayActivity.kt
│ │ ├── MapViewCustomizationActivity.kt
│ │ ├── MapboxMapRecorderActivity.kt
│ │ ├── MapboxStudioStyleActivity.kt
│ │ ├── MultiDisplayActivity.kt
│ │ ├── MultiMapActivity.kt
│ │ ├── NinePatchImageActivity.kt
│ │ ├── OfflineActivity.kt
│ │ ├── OngoingAnimationActivity.kt
│ │ ├── OrnamentMarginActivity.kt
│ │ ├── RawExpressionActivity.kt
│ │ ├── RawGeoJsonActivity.kt
│ │ ├── RawSourceLayerActivity.kt
│ │ ├── RuntimeStylingActivity.kt
│ │ ├── ScaleBarActivity.kt
│ │ ├── SecondaryDisplayActivity.kt
│ │ ├── SecondaryDisplayPresentationActivity.kt
│ │ ├── ShowHideLayersActivity.kt
│ │ ├── SimpleMapActivity.kt
│ │ ├── SimulateNavigationRouteActivity.kt
│ │ ├── SlotLayerActivity.kt
│ │ ├── SpaceStationLocationActivity.kt
│ │ ├── StandardStyleActivity.kt
│ │ ├── StandardStyleInteractionsActivity.kt
│ │ ├── StyleCirclesCategoricallyActivity.kt
│ │ ├── StyleSwitchActivity.kt
│ │ ├── SurfaceActivity.kt
│ │ ├── SurfaceRecyclerViewActivity.kt
│ │ ├── TextureViewActivity.kt
│ │ ├── TextureViewAnimateActivity.kt
│ │ ├── TintFillPatternActivity.kt
│ │ ├── TransparentBackgroundActivity.kt
│ │ ├── VectorTileSourceActivity.kt
│ │ ├── ViewPagerActivity.kt
│ │ ├── WithinExpressionActivity.kt
│ │ ├── WmsSourceActivity.kt
│ │ ├── annotation
│ │ │ ├── AnimatePointAnnotationActivity.kt
│ │ │ └── AnnotationUtils.kt
│ │ ├── camera
│ │ │ ├── CameraPredefinedAnimatorsActivity.kt
│ │ │ ├── LowLevelCameraAnimatorActivity.kt
│ │ │ └── RestrictBoundsActivity.kt
│ │ ├── coroutines
│ │ │ └── featurestate
│ │ │ │ └── FeatureStateActivity.kt
│ │ ├── customlayer
│ │ │ ├── CustomLayerActivity.kt
│ │ │ ├── ExampleCustomLayer.kt
│ │ │ ├── NativeCustomLayerActivity.kt
│ │ │ ├── NativeExampleCustomLayer.kt
│ │ │ ├── TriangleCustomLayer.kt
│ │ │ └── TriangleCustomLayerActivity.kt
│ │ ├── fragment
│ │ │ ├── MapFragment.kt
│ │ │ └── MapViewPager.kt
│ │ ├── geofence
│ │ │ ├── ExtendedGeofencingActivity.kt
│ │ │ └── SimpleGeofencingActivity.kt
│ │ ├── globe
│ │ │ ├── GlobeActivity.kt
│ │ │ ├── GlobeFlyToActivity.kt
│ │ │ ├── HeatmapLayerGlobeActivity.kt
│ │ │ └── SpinningGlobeActivity.kt
│ │ ├── java
│ │ │ ├── DSLStylingJavaActivity.java
│ │ │ └── RuntimeStylingJavaActivity.java
│ │ ├── linesandpolygons
│ │ │ ├── DrawGeoJsonLineActivity.kt
│ │ │ ├── DrawPolygonActivity.kt
│ │ │ ├── LineGradientActivity.kt
│ │ │ ├── MovingIconWithTrailingLineActivity.kt
│ │ │ ├── PolygonHolesActivity.kt
│ │ │ └── SnakingDirectionsRouteActivity.kt
│ │ ├── localization
│ │ │ └── LocalizationActivity.kt
│ │ ├── markersandcallouts
│ │ │ ├── AddMarkersSymbolActivity.kt
│ │ │ ├── AddOneMarkerSymbolActivity.kt
│ │ │ ├── AnimatedMarkerActivity.kt
│ │ │ ├── CircleAnnotationActivity.kt
│ │ │ ├── IconSizeChangeOnClickActivity.kt
│ │ │ ├── MultipleGeometriesActivity.kt
│ │ │ ├── PointAnnotationActivity.kt
│ │ │ ├── PointAnnotationClusterActivity.kt
│ │ │ ├── PolygonAnnotationActivity.kt
│ │ │ ├── PolylineAnnotationActivity.kt
│ │ │ ├── infowindow
│ │ │ │ ├── InfoWindowActivity.kt
│ │ │ │ ├── Marker.kt
│ │ │ │ └── MarkerManager.kt
│ │ │ └── viewannotation
│ │ │ │ ├── DynamicViewAnnotationActivity.kt
│ │ │ │ ├── ViewAnnotationAnimationActivity.kt
│ │ │ │ ├── ViewAnnotationBasicAddActivity.kt
│ │ │ │ ├── ViewAnnotationShowcaseActivity.kt
│ │ │ │ └── ViewAnnotationWithPointAnnotationActivity.kt
│ │ ├── sky
│ │ │ ├── SkyLayerShowcaseActivity.kt
│ │ │ └── SkyLayerSnapshotterActivity.kt
│ │ ├── snapshotter
│ │ │ ├── DataDrivenMapSnapshotterActivity.kt
│ │ │ ├── LocalStyleMapSnapshotterActivity.kt
│ │ │ ├── MapSnapshotterActivity.kt
│ │ │ └── MapViewSnapshotActivity.kt
│ │ ├── style
│ │ │ ├── ColorThemeActivity.kt
│ │ │ ├── CustomRasterSourceActivity.kt
│ │ │ ├── PrecipitationActivity.kt
│ │ │ ├── RasterColorizationActivity.kt
│ │ │ ├── RasterParticlesActivity.kt
│ │ │ ├── ThirdPartyVectorSourceActivity.kt
│ │ │ └── TileJsonActivity.kt
│ │ ├── terrain3D
│ │ │ ├── FillExtrusionActivity.kt
│ │ │ ├── Lights3DActivity.kt
│ │ │ ├── ModelLayerActivity.kt
│ │ │ ├── SantaCatalinaActivity.kt
│ │ │ └── Terrain3DShowcaseActivity.kt
│ │ └── viewport
│ │ │ ├── AdvancedViewportGesturesExample.kt
│ │ │ └── ViewportShowcaseActivity.kt
│ │ ├── model
│ │ ├── IssModel.kt
│ │ ├── IssPosition.kt
│ │ └── SpecificExample.kt
│ │ ├── utils
│ │ ├── BitmapUtils.kt
│ │ ├── ItemClickSupport.kt
│ │ ├── LocationPermissionHelper.kt
│ │ ├── NavigationSimulator.kt
│ │ ├── SimulateRouteLocationProvider.kt
│ │ └── StorageUtils.kt
│ │ └── wallpaper
│ │ └── MapWallpaper.kt
│ └── res
│ ├── drawable-hdpi
│ ├── android_symbol.xml
│ ├── blue_round_nine.9.png
│ ├── ic_clear.png
│ ├── line_divider.xml
│ ├── miami_beach.png
│ ├── nps_picnic_area.png
│ ├── nps_restrooms.png
│ └── nps_trailhead.png
│ ├── drawable-mdpi
│ ├── android_symbol.xml
│ ├── custom_compass.png
│ ├── ic_clear.png
│ ├── iss.png
│ ├── line_divider.xml
│ ├── miami_beach.png
│ ├── pattern.png
│ ├── southeast_radar_0.png
│ ├── southeast_radar_1.png
│ ├── southeast_radar_2.png
│ └── southeast_radar_3.png
│ ├── drawable-xhdpi
│ ├── android_symbol.xml
│ ├── ic_clear.png
│ ├── line_divider.xml
│ └── miami_beach.png
│ ├── drawable-xxhdpi
│ ├── android_symbol.xml
│ ├── fill_pattern.png
│ ├── ic_clear.png
│ ├── line_divider.xml
│ ├── miami_beach.png
│ └── pink_dot.png
│ ├── drawable-xxxhdpi
│ ├── android_symbol.xml
│ ├── ic_car_top.png
│ ├── ic_clear.png
│ ├── ic_taxi_top.png
│ ├── line_divider.xml
│ ├── mapbox_mylocation_icon_default.png
│ └── miami_beach.png
│ ├── drawable
│ ├── arrow_straight.xml
│ ├── bg_dva_eta.xml
│ ├── bg_dva_parking.xml
│ ├── bg_rounded_corner.xml
│ ├── ic_airplanemode_active_black_24dp.xml
│ ├── ic_baseline_refresh_24.xml
│ ├── ic_blue_marker.xml
│ ├── ic_callout_item_background.xml
│ ├── ic_cross.xml
│ ├── ic_layers.xml
│ ├── ic_layers_24dp.xml
│ ├── ic_layers_clear.xml
│ ├── ic_legacy_callout.xml
│ ├── ic_paint.xml
│ ├── ic_red_marker.xml
│ ├── ic_swap_horiz_white_24dp.xml
│ ├── ic_translate_white_24dp.xml
│ ├── mapbox_mylocation_bg_shape.xml
│ └── monochrome_lut.png
│ ├── layout
│ ├── activity_add_marker_symbol.xml
│ ├── activity_animated_imagesource.xml
│ ├── activity_animated_marker.xml
│ ├── activity_annotation.xml
│ ├── activity_camera_predefined_animators.xml
│ ├── activity_custom_attribution.xml
│ ├── activity_custom_layer.xml
│ ├── activity_custom_raster_source.xml
│ ├── activity_dds_draw_polygon.xml
│ ├── activity_dds_moving_icon_with_trailing_line.xml
│ ├── activity_debug.xml
│ ├── activity_dynamic_view_annotations.xml
│ ├── activity_empty_fab.xml
│ ├── activity_example_overview.xml
│ ├── activity_extended_geofencing.xml
│ ├── activity_feature_state.xml
│ ├── activity_fill_extrusion.xml
│ ├── activity_gestures.xml
│ ├── activity_heatmap_layer.xml
│ ├── activity_icon_property.xml
│ ├── activity_icon_size_change_on_click.xml
│ ├── activity_image_source.xml
│ ├── activity_inset_map.xml
│ ├── activity_javaservices_snaking_directions_route.xml
│ ├── activity_legacy_offline.xml
│ ├── activity_line_gradient.xml
│ ├── activity_location_component.xml
│ ├── activity_location_component_animation.xml
│ ├── activity_location_layer_basic_pulsing_circle.xml
│ ├── activity_map_localization.xml
│ ├── activity_map_overlay.xml
│ ├── activity_map_view_customization.xml
│ ├── activity_mapview.xml
│ ├── activity_multi_display.xml
│ ├── activity_multi_map.xml
│ ├── activity_multiple_geometries.xml
│ ├── activity_offline.xml
│ ├── activity_precipitations.xml
│ ├── activity_recycler.xml
│ ├── activity_restrict_bounds.xml
│ ├── activity_rts_fill_pattern_tint.xml
│ ├── activity_scale_bar.xml
│ ├── activity_secondary_display.xml
│ ├── activity_secondary_display_presentation.xml
│ ├── activity_show_hide_layers.xml
│ ├── activity_simple_geofencing.xml
│ ├── activity_sky_layer.xml
│ ├── activity_sky_snapshotter.xml
│ ├── activity_slot_layer.xml
│ ├── activity_standard_style.xml
│ ├── activity_style_mapbox_studio.xml
│ ├── activity_style_switch.xml
│ ├── activity_style_vector_source.xml
│ ├── activity_surface.xml
│ ├── activity_terrain_showcase.xml
│ ├── activity_texture_view.xml
│ ├── activity_transparent_background.xml
│ ├── activity_view_annotation_showcase.xml
│ ├── activity_view_snapshot.xml
│ ├── activity_viewpager.xml
│ ├── activity_viewport_animation.xml
│ ├── activity_wms_source.xml
│ ├── generated_test_attribution.xml
│ ├── generated_test_compass.xml
│ ├── generated_test_gestures.xml
│ ├── generated_test_locationcomponent.xml
│ ├── generated_test_logo.xml
│ ├── generated_test_scalebar.xml
│ ├── item_callout_view.xml
│ ├── item_display_info.xml
│ ├── item_dva_alt_eta.xml
│ ├── item_dva_construction.xml
│ ├── item_dva_eta.xml
│ ├── item_dva_parking.xml
│ ├── item_gesture_alert.xml
│ ├── item_legacy_callout_view.xml
│ ├── item_map.xml
│ ├── item_single_example.xml
│ ├── item_spinner_view.xml
│ └── section_main_layout.xml
│ ├── menu
│ ├── menu_bounds.xml
│ ├── menu_clip_layer.xml
│ ├── menu_color_theme.xml
│ ├── menu_custom_layer.xml
│ ├── menu_debug_mode.xml
│ ├── menu_gestures.xml
│ ├── menu_languages.xml
│ ├── menu_location_component.xml
│ ├── menu_location_component_model_customisation.xml
│ ├── menu_predefined_animators.xml
│ ├── menu_pulsing_location_mode.xml
│ ├── menu_symbol.xml
│ ├── menu_tilejson.xml
│ └── menu_view_annotation.xml
│ ├── mipmap-anydpi-v26
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── raw
│ └── moving_background_water.mp4
│ ├── values
│ ├── actions.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── example_categories.xml
│ ├── example_descriptions.xml
│ ├── example_titles.xml
│ ├── ic_launcher_background.xml
│ ├── ids.xml
│ ├── interpolators.xml
│ ├── strings.xml
│ └── styles.xml
│ └── xml
│ └── map_wallpaper.xml
├── build.gradle.kts
├── cloudformation
└── ci.template.js
├── codecov.yml
├── compose-app
├── .gitignore
├── build.gradle.kts
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── dva-sf-construction.geojson
│ ├── dva-sf-parkings.geojson
│ ├── dva-sf-route-alternative.geojson
│ ├── dva-sf-route-main.geojson
│ ├── fragment-realestate-NY.json
│ ├── navigation_route.json
│ └── sportcar.glb
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── compose
│ │ └── testapp
│ │ ├── ExampleCategoryItem.kt
│ │ ├── ExampleListItem.kt
│ │ ├── ExampleOverviewActivity.kt
│ │ ├── ExampleScaffold.kt
│ │ ├── MapboxApplication.kt
│ │ ├── data
│ │ ├── ExamplesProvider.kt
│ │ └── model
│ │ │ └── ExampleEntry.kt
│ │ ├── examples
│ │ ├── animation
│ │ │ └── MapViewportAnimationsActivity.kt
│ │ ├── annotation
│ │ │ ├── CircleAnnotationActivity.kt
│ │ │ ├── DynamicViewAnnotationActivity.kt
│ │ │ ├── PointAnnotationActivity.kt
│ │ │ ├── PointAnnotationClusterActivity.kt
│ │ │ ├── PolygonAnnotationActivity.kt
│ │ │ ├── PolylineAnnotationActivity.kt
│ │ │ └── ViewAnnotationActivity.kt
│ │ ├── basic
│ │ │ ├── DebugModeActivity.kt
│ │ │ ├── MultiDisplayActivity.kt
│ │ │ ├── MultiMapActivity.kt
│ │ │ ├── QueryRenderedFeatureActivity.kt
│ │ │ └── SimpleMapActivity.kt
│ │ ├── location
│ │ │ ├── LocationComponentActivity.kt
│ │ │ └── NavigationSimulationActivity.kt
│ │ ├── ornaments
│ │ │ └── OrnamentCustomisationActivity.kt
│ │ ├── style
│ │ │ ├── AnimatedImageSourceActivity.kt
│ │ │ ├── ClipLayerActivity.kt
│ │ │ ├── ColorThemeActivity.kt
│ │ │ ├── GenericStylePositionsActivity.kt
│ │ │ ├── ImageSourceActivity.kt
│ │ │ ├── InteractionsActivity.kt
│ │ │ ├── ModelLayerActivity.kt
│ │ │ ├── PrecipitationsActivity.kt
│ │ │ ├── StandardStyleActivity.kt
│ │ │ ├── StyleCompositionActivity.kt
│ │ │ ├── StyleImportsActivity.kt
│ │ │ ├── StyleStatesActivity.kt
│ │ │ └── TerrainActivity.kt
│ │ └── utils
│ │ │ ├── AnnotationUtils.kt
│ │ │ ├── CityLocations.kt
│ │ │ ├── PermissionUtils.kt
│ │ │ └── SimulateRouteLocationProvider.kt
│ │ ├── ui
│ │ └── theme
│ │ │ ├── Color.kt
│ │ │ ├── Shape.kt
│ │ │ ├── Theme.kt
│ │ │ └── Type.kt
│ │ └── utils
│ │ ├── FrameStatsRecorder.kt
│ │ └── StorageUtils.kt
│ └── res
│ ├── drawable
│ ├── arrow_straight.xml
│ ├── bg_dva_eta.xml
│ ├── bg_dva_parking.xml
│ ├── ic_blue_marker.xml
│ ├── ic_red_marker.xml
│ ├── miami_beach.png
│ ├── monochrome_lut.png
│ ├── southeast_radar_0.png
│ ├── southeast_radar_1.png
│ ├── southeast_radar_2.png
│ └── southeast_radar_3.png
│ ├── mipmap-anydpi-v26
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher_foreground.png
│ └── ic_launcher_round.png
│ ├── values-night
│ └── themes.xml
│ └── values
│ ├── colors.xml
│ ├── example_categories.xml
│ ├── example_descriptions.xml
│ ├── example_titles.xml
│ ├── ic_launcher_background.xml
│ ├── strings.xml
│ └── themes.xml
├── detekt.yml
├── extension-androidauto
├── .gitignore
├── CHANGELOG-v0.5.0.md
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── extension-androidauto.api
├── build.gradle.kts
└── src
│ ├── main
│ ├── AndroidManifest.xml
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── extension
│ │ └── androidauto
│ │ ├── CarMapSurfaceOwner.kt
│ │ ├── DefaultMapboxCarMapGestureHandler.kt
│ │ ├── MapSurfaceProvider.kt
│ │ ├── MapboxCarMap.kt
│ │ ├── MapboxCarMapEx.kt
│ │ ├── MapboxCarMapGestureHandler.java
│ │ ├── MapboxCarMapInitializer.kt
│ │ ├── MapboxCarMapObserver.java
│ │ ├── MapboxCarMapScreenInstaller.kt
│ │ ├── MapboxCarMapSessionInstaller.kt
│ │ ├── MapboxCarMapSurface.kt
│ │ ├── MapboxCarTelemetryEvents.kt
│ │ └── widgets
│ │ ├── CompassWidget.kt
│ │ └── LogoWidget.kt
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── extension
│ └── androidauto
│ ├── CarMapSurfaceOwnerTest.kt
│ ├── DefaultMapboxCarMapGestureHandlerTest.kt
│ ├── MapboxCarMapScreenInstallerTest.kt
│ ├── MapboxCarMapSessionInstallerTest.kt
│ ├── MapboxCarMapTest.kt
│ └── testing
│ └── TestLifecycleOwner.kt
├── extension-compose
├── .gitignore
├── CHANGELOG-v0.1.0.md
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── extension-compose.api
├── build.gradle.kts
├── lint.xml
└── src
│ ├── androidTest
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── extension
│ │ │ └── compose
│ │ │ ├── MapIntegrationTests.kt
│ │ │ ├── annotation
│ │ │ ├── AnnotationTests.kt
│ │ │ └── ViewAnnotationTest.kt
│ │ │ ├── internal
│ │ │ └── utils
│ │ │ │ └── CityLocations.kt
│ │ │ ├── multimap
│ │ │ └── MultiMapTest.kt
│ │ │ └── style
│ │ │ └── LayerPositionAwareNodeTest.kt
│ └── res
│ │ └── values
│ │ └── strings.xml
│ ├── main
│ ├── AndroidManifest.xml
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── extension
│ │ └── compose
│ │ ├── ComposeMapInitOptions.kt
│ │ ├── DisposableMapEffect.kt
│ │ ├── MapEffect.kt
│ │ ├── MapState.kt
│ │ ├── MapboxMap.kt
│ │ ├── MapboxMapComposable.kt
│ │ ├── MapboxMapScope.kt
│ │ ├── MapboxMapScopeMarker.kt
│ │ ├── animation
│ │ └── viewport
│ │ │ └── MapViewportState.kt
│ │ ├── annotation
│ │ ├── IconImage.kt
│ │ ├── ViewAnnotation.kt
│ │ ├── generated
│ │ │ ├── CircleAnnotation.kt
│ │ │ ├── CircleAnnotationGroup.kt
│ │ │ ├── CircleAnnotationGroupInteractionsState.kt
│ │ │ ├── CircleAnnotationGroupState.kt
│ │ │ ├── CircleAnnotationInteractionsState.kt
│ │ │ ├── CircleAnnotationOptionsExt.kt
│ │ │ ├── CircleAnnotationState.kt
│ │ │ ├── PointAnnotation.kt
│ │ │ ├── PointAnnotationGroup.kt
│ │ │ ├── PointAnnotationGroupInteractionsState.kt
│ │ │ ├── PointAnnotationGroupState.kt
│ │ │ ├── PointAnnotationInteractionsState.kt
│ │ │ ├── PointAnnotationOptionsExt.kt
│ │ │ ├── PointAnnotationState.kt
│ │ │ ├── PolygonAnnotation.kt
│ │ │ ├── PolygonAnnotationGroup.kt
│ │ │ ├── PolygonAnnotationGroupInteractionsState.kt
│ │ │ ├── PolygonAnnotationGroupState.kt
│ │ │ ├── PolygonAnnotationInteractionsState.kt
│ │ │ ├── PolygonAnnotationOptionsExt.kt
│ │ │ ├── PolygonAnnotationState.kt
│ │ │ ├── PolylineAnnotation.kt
│ │ │ ├── PolylineAnnotationGroup.kt
│ │ │ ├── PolylineAnnotationGroupInteractionsState.kt
│ │ │ ├── PolylineAnnotationGroupState.kt
│ │ │ ├── PolylineAnnotationInteractionsState.kt
│ │ │ ├── PolylineAnnotationOptionsExt.kt
│ │ │ └── PolylineAnnotationState.kt
│ │ └── internal
│ │ │ ├── BaseAnnotationNode.kt
│ │ │ └── generated
│ │ │ ├── CircleAnnotationManagerNode.kt
│ │ │ ├── CircleAnnotationNode.kt
│ │ │ ├── PointAnnotationManagerNode.kt
│ │ │ ├── PointAnnotationNode.kt
│ │ │ ├── PolygonAnnotationManagerNode.kt
│ │ │ ├── PolygonAnnotationNode.kt
│ │ │ ├── PolylineAnnotationManagerNode.kt
│ │ │ └── PolylineAnnotationNode.kt
│ │ ├── internal
│ │ ├── ComposeTelemetryEvents.kt
│ │ ├── LayerPositionAwareNode.kt
│ │ ├── MapApplier.kt
│ │ ├── MapEventCancelableHolder.kt
│ │ ├── MapPreviewPlaceholder.kt
│ │ ├── MapViewLifecycle.kt
│ │ ├── MapboxMapNode.kt
│ │ ├── SettingsUtils.kt
│ │ └── StyleLifecycleAwareNode.kt
│ │ ├── ornaments
│ │ ├── attribution
│ │ │ ├── MapAttributionScope.kt
│ │ │ └── internal
│ │ │ │ └── AttributionComposePlugin.kt
│ │ ├── compass
│ │ │ └── MapCompassScope.kt
│ │ ├── logo
│ │ │ └── MapLogoScope.kt
│ │ └── scalebar
│ │ │ ├── MapScaleBarScope.kt
│ │ │ └── internal
│ │ │ └── ScaleBarComposePlugin.kt
│ │ └── style
│ │ ├── IdGenerator.kt
│ │ ├── MapboxStyleComposable.kt
│ │ ├── PropertyTypes.kt
│ │ ├── Style.kt
│ │ ├── StyleColorTheme.kt
│ │ ├── StyleImage.kt
│ │ ├── StyleState.kt
│ │ ├── atmosphere
│ │ ├── AtmosphereStateApplier.kt
│ │ └── generated
│ │ │ └── AtmosphereState.kt
│ │ ├── imports
│ │ ├── MapboxStyleImportComposable.kt
│ │ ├── StyleImportInteractionsState.kt
│ │ ├── StyleImportState.kt
│ │ └── StyleImportsScope.kt
│ │ ├── interactions
│ │ ├── BasicStyleInteractions.kt
│ │ ├── StyleInteractionsState.kt
│ │ └── generated
│ │ │ └── FeaturesetFeatureScope.kt
│ │ ├── internal
│ │ ├── ComposeTypeUtils.kt
│ │ ├── MapStyleNode.kt
│ │ ├── ParcelerUtils.kt
│ │ ├── StyleAwareNode.kt
│ │ ├── StyleConfig.kt
│ │ ├── StyleLayerPosition.kt
│ │ └── StyleSlot.kt
│ │ ├── layers
│ │ ├── LayerInteractionsState.kt
│ │ ├── PropertyTypes.kt
│ │ ├── generated
│ │ │ ├── BackgroundLayer.kt
│ │ │ ├── BackgroundLayerState.kt
│ │ │ ├── CircleLayer.kt
│ │ │ ├── CircleLayerState.kt
│ │ │ ├── ClipLayer.kt
│ │ │ ├── ClipLayerState.kt
│ │ │ ├── FillExtrusionLayer.kt
│ │ │ ├── FillExtrusionLayerState.kt
│ │ │ ├── FillLayer.kt
│ │ │ ├── FillLayerState.kt
│ │ │ ├── HeatmapLayer.kt
│ │ │ ├── HeatmapLayerState.kt
│ │ │ ├── HillshadeLayer.kt
│ │ │ ├── HillshadeLayerState.kt
│ │ │ ├── LayerProperties.kt
│ │ │ ├── LineLayer.kt
│ │ │ ├── LineLayerState.kt
│ │ │ ├── LocationIndicatorLayer.kt
│ │ │ ├── LocationIndicatorLayerState.kt
│ │ │ ├── ModelLayer.kt
│ │ │ ├── ModelLayerState.kt
│ │ │ ├── RasterLayer.kt
│ │ │ ├── RasterLayerState.kt
│ │ │ ├── RasterParticleLayer.kt
│ │ │ ├── RasterParticleLayerState.kt
│ │ │ ├── SkyLayer.kt
│ │ │ ├── SkyLayerState.kt
│ │ │ ├── SymbolLayer.kt
│ │ │ └── SymbolLayerState.kt
│ │ └── internal
│ │ │ └── LayerNode.kt
│ │ ├── lights
│ │ ├── LightsState.kt
│ │ ├── generated
│ │ │ ├── AmbientLightState.kt
│ │ │ ├── DirectionalLightState.kt
│ │ │ ├── FlatLightState.kt
│ │ │ └── LightsProperties.kt
│ │ └── internal
│ │ │ └── MapboxLight.kt
│ │ ├── precipitations
│ │ ├── RainStateApplier.kt
│ │ ├── SnowStateApplier.kt
│ │ └── generated
│ │ │ ├── RainState.kt
│ │ │ └── SnowState.kt
│ │ ├── projection
│ │ └── generated
│ │ │ └── Projection.kt
│ │ ├── sources
│ │ ├── PropertyTypes.kt
│ │ ├── SourceState.kt
│ │ └── generated
│ │ │ ├── GeoJsonSourceState.kt
│ │ │ ├── ImageSourceState.kt
│ │ │ ├── RasterArraySourceState.kt
│ │ │ ├── RasterDemSourceState.kt
│ │ │ ├── RasterSourceState.kt
│ │ │ ├── SourceProperties.kt
│ │ │ └── VectorSourceState.kt
│ │ ├── standard
│ │ ├── BaseStandardStyleConfigurationState.kt
│ │ ├── BaseStandardStyleState.kt
│ │ ├── MapboxStandardSatelliteStyle.kt
│ │ ├── MapboxStandardStyle.kt
│ │ ├── StandardSatelliteStyleConfigurationState.kt
│ │ ├── StandardStyleConfigurationState.kt
│ │ ├── StandardStyleState.kt
│ │ └── generated
│ │ │ └── StandardStyleInteractionsState.kt
│ │ └── terrain
│ │ ├── TerrainStateApplier.kt
│ │ └── generated
│ │ └── TerrainState.kt
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── extension
│ └── compose
│ ├── MapApplierTest.kt
│ ├── MapNodeExt.kt
│ ├── SimpleLayerPositionAwareNode.kt
│ ├── internal
│ └── LayerPositionAwareNodeTest.kt
│ └── style
│ ├── PropertiesTests.kt
│ ├── layers
│ └── PropertiesTests.kt
│ └── projection
│ └── ProjectionTests.kt
├── extension-localization
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── extension-localization.api
├── build.gradle.kts
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── extension
│ │ └── localization
│ │ ├── Localization.kt
│ │ ├── StyleInterfaceExtension.kt
│ │ └── SupportedLanguages.kt
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── extension
│ └── localization
│ └── SupportedLanguagesTest.kt
├── extension-style-app
├── build.gradle.kts
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── testapp
│ │ └── style
│ │ ├── BaseStyleTest.kt
│ │ ├── atmosphere
│ │ └── generated
│ │ │ └── AtmosphereTest.kt
│ │ ├── expressions
│ │ └── ExpressionTest.kt
│ │ ├── layers
│ │ ├── CustomLayerTest.kt
│ │ ├── SlotLayerTest.kt
│ │ └── generated
│ │ │ ├── BackgroundLayerTest.kt
│ │ │ ├── CircleLayerTest.kt
│ │ │ ├── ClipLayerTest.kt
│ │ │ ├── FillExtrusionLayerTest.kt
│ │ │ ├── FillLayerTest.kt
│ │ │ ├── HeatmapLayerTest.kt
│ │ │ ├── HillshadeLayerTest.kt
│ │ │ ├── LineLayerTest.kt
│ │ │ ├── LocationIndicatorLayerTest.kt
│ │ │ ├── ModelLayerTest.kt
│ │ │ ├── RasterLayerTest.kt
│ │ │ ├── RasterParticleLayerTest.kt
│ │ │ ├── SkyLayerTest.kt
│ │ │ └── SymbolLayerTest.kt
│ │ ├── light
│ │ ├── LightTest.kt
│ │ └── generated
│ │ │ ├── AmbientLightTest.kt
│ │ │ ├── DirectionalLightTest.kt
│ │ │ └── FlatLightTest.kt
│ │ ├── precipitations
│ │ └── generated
│ │ │ ├── RainTest.kt
│ │ │ └── SnowTest.kt
│ │ ├── sources
│ │ ├── RasterArraySourceTest.kt
│ │ └── generated
│ │ │ ├── GeoJsonSourceTest.kt
│ │ │ ├── ImageSourceTest.kt
│ │ │ ├── RasterArraySourceTest.kt
│ │ │ ├── RasterDemSourceTest.kt
│ │ │ ├── RasterSourceTest.kt
│ │ │ └── VectorSourceTest.kt
│ │ ├── terrain
│ │ └── generated
│ │ │ └── TerrainTest.kt
│ │ └── utils
│ │ └── TypeUtilsTest.kt
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── testapp
│ │ └── style
│ │ └── MainActivity.kt
│ └── res
│ ├── mipmap-xxhdpi
│ └── ic_launcher.png
│ └── values
│ └── ids.xml
├── extension-style-lint-rules
├── .gitignore
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── lint
│ │ │ └── style
│ │ │ ├── MapboxStyleDslDetector.kt
│ │ │ ├── StyleIssueRegistry.kt
│ │ │ ├── UnusedStyleDslDetector.kt
│ │ │ └── expressions
│ │ │ ├── IllegalNumberOfArgumentsDetector.kt
│ │ │ ├── MapboxExpressionDslDetector.kt
│ │ │ └── UnusedLiteralDetector.kt
│ └── resources
│ │ └── META-INF
│ │ └── services
│ │ └── com.android.tools.lint.client.api.IssueRegistry
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── lint
│ └── style
│ ├── Stubs.kt
│ ├── UnusedStyleDslDetectorTest.kt
│ └── expressions
│ ├── IllegalNumberOfArgumentsDetectorTest.kt
│ └── UnusedLiteralDetectorTest.kt
├── extension-style
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── extension-style.api
├── build.gradle.kts
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── extension
│ │ └── style
│ │ ├── StyleExtensionImpl.kt
│ │ ├── atmosphere
│ │ └── generated
│ │ │ ├── Atmosphere.kt
│ │ │ └── AtmosphereExt.kt
│ │ ├── color
│ │ └── ColorThemeExt.kt
│ │ ├── expressions
│ │ ├── dsl
│ │ │ └── generated
│ │ │ │ └── ExpressionDsl.kt
│ │ ├── generated
│ │ │ └── Expression.kt
│ │ └── types
│ │ │ └── FormatSection.kt
│ │ ├── image
│ │ ├── ImageExt.kt
│ │ ├── ImageExtensionImpl.kt
│ │ ├── ImageNinePatchExtensionImpl.kt
│ │ ├── NinePatchImage.kt
│ │ └── NinePatchUtils.kt
│ │ ├── layers
│ │ ├── CustomLayer.kt
│ │ ├── Layer.kt
│ │ ├── LayerExt.kt
│ │ ├── generated
│ │ │ ├── BackgroundLayer.kt
│ │ │ ├── CircleLayer.kt
│ │ │ ├── ClipLayer.kt
│ │ │ ├── FillExtrusionLayer.kt
│ │ │ ├── FillLayer.kt
│ │ │ ├── HeatmapLayer.kt
│ │ │ ├── HillshadeLayer.kt
│ │ │ ├── LineLayer.kt
│ │ │ ├── LocationIndicatorLayer.kt
│ │ │ ├── ModelLayer.kt
│ │ │ ├── RasterLayer.kt
│ │ │ ├── RasterParticleLayer.kt
│ │ │ ├── SkyLayer.kt
│ │ │ ├── SlotLayer.kt
│ │ │ └── SymbolLayer.kt
│ │ └── properties
│ │ │ ├── PropertyValue.kt
│ │ │ └── generated
│ │ │ └── Property.kt
│ │ ├── light
│ │ ├── DynamicLight.kt
│ │ ├── Light.kt
│ │ ├── LightExt.kt
│ │ ├── LightPosition.kt
│ │ └── generated
│ │ │ ├── AmbientLight.kt
│ │ │ ├── DirectionalLight.kt
│ │ │ └── FlatLight.kt
│ │ ├── model
│ │ ├── ModelExt.kt
│ │ └── ModelExtensionImpl.kt
│ │ ├── precipitations
│ │ └── generated
│ │ │ ├── Rain.kt
│ │ │ ├── RainExt.kt
│ │ │ ├── Snow.kt
│ │ │ └── SnowExt.kt
│ │ ├── projection
│ │ └── generated
│ │ │ ├── Projection.kt
│ │ │ └── ProjectionExt.kt
│ │ ├── sources
│ │ ├── CustomGeometrySource.kt
│ │ ├── CustomRasterSource.kt
│ │ ├── GeoJsonSourceExt.kt
│ │ ├── ImageSourceExt.kt
│ │ ├── Source.kt
│ │ ├── SourceExt.kt
│ │ ├── TileSet.kt
│ │ └── generated
│ │ │ ├── GeoJsonSource.kt
│ │ │ ├── ImageSource.kt
│ │ │ ├── RasterArraySource.kt
│ │ │ ├── RasterDemSource.kt
│ │ │ ├── RasterSource.kt
│ │ │ ├── SourceProperties.kt
│ │ │ └── VectorSource.kt
│ │ ├── terrain
│ │ └── generated
│ │ │ ├── Terrain.kt
│ │ │ └── TerrainExt.kt
│ │ ├── types
│ │ ├── Formatted.kt
│ │ ├── FormattedSection.kt
│ │ ├── PromoteId.kt
│ │ ├── StyleTransition.kt
│ │ └── TypeDSLs.kt
│ │ └── utils
│ │ ├── ColorUtils.kt
│ │ ├── ExpectedUtils.kt
│ │ ├── StyleTelemetryEvents.kt
│ │ └── TypeUtils.kt
│ └── test
│ └── java
│ ├── android
│ └── util
│ │ └── Log.java
│ └── com
│ └── mapbox
│ └── maps
│ └── extension
│ └── style
│ ├── EqualsHashCodeTest.kt
│ ├── ShadowStyleManager.java
│ ├── atmosphere
│ └── generated
│ │ └── AtmosphereTest.kt
│ ├── expressions
│ ├── LiteralExpressionTest.kt
│ └── generated
│ │ └── ExpressionTest.kt
│ ├── image
│ ├── ImageNinePatchExtensionImplTest.kt
│ └── ImagePluginImplTest.kt
│ ├── layers
│ ├── LayerExtTest.kt
│ └── generated
│ │ ├── BackgroundLayerTest.kt
│ │ ├── CircleLayerTest.kt
│ │ ├── ClipLayerTest.kt
│ │ ├── FillExtrusionLayerTest.kt
│ │ ├── FillLayerTest.kt
│ │ ├── HeatmapLayerTest.kt
│ │ ├── HillshadeLayerTest.kt
│ │ ├── LineLayerTest.kt
│ │ ├── LocationIndicatorLayerTest.kt
│ │ ├── ModelLayerTest.kt
│ │ ├── RasterLayerTest.kt
│ │ ├── RasterParticleLayerTest.kt
│ │ ├── SkyLayerTest.kt
│ │ └── SymbolLayerTest.kt
│ ├── light
│ └── generated
│ │ ├── AmbientLightTest.kt
│ │ ├── DirectionalLightTest.kt
│ │ └── FlatLightTest.kt
│ ├── precipitations
│ └── generated
│ │ ├── RainTest.kt
│ │ └── SnowTest.kt
│ ├── sources
│ ├── CustomGeometrySourceTest.kt
│ ├── CustomRasterSourceTest.kt
│ ├── GeoJsonSourceMutateTest.kt
│ ├── ImageSourceExtTest.kt
│ ├── TileSetTest.kt
│ └── generated
│ │ ├── GeoJsonSourceTest.kt
│ │ ├── ImageSourceTest.kt
│ │ ├── RasterArraySourceTest.kt
│ │ ├── RasterDemSourceTest.kt
│ │ ├── RasterSourceTest.kt
│ │ └── VectorSourceTest.kt
│ ├── terrain
│ └── generated
│ │ └── TerrainTest.kt
│ └── utils
│ ├── ColorUtilsTest.kt
│ ├── PromoteIdTest.kt
│ └── TypeUtilsTest.kt
├── gradle.properties
├── gradle
├── commonlibs.versions.toml
├── dependency-updates.gradle
├── detekt.gradle
├── ktlint.gradle
├── libs.versions.toml
├── lint.gradle
├── metalava.gradle
├── pitest.gradle
├── play-publisher.gradle
├── script-git-version.gradle
├── track-public-apis.gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── mapbox-convention-plugin
├── README.md
├── build.gradle.kts
├── settings.gradle.kts
└── src
│ └── main
│ └── kotlin
│ └── com
│ └── mapbox
│ └── maps
│ └── gradle
│ └── plugins
│ ├── MapboxPlugins.kt
│ ├── extensions
│ ├── MapboxApplicationExtension.kt
│ ├── MapboxDependenciesExtension.kt
│ ├── MapboxDependencyExtension.kt
│ ├── MapboxDokkaExtension.kt
│ ├── MapboxJApiCmpExtension.kt
│ ├── MapboxJacocoExtension.kt
│ ├── MapboxLibraryExtension.kt
│ ├── MapboxPublishLibraryExtension.kt
│ └── MapboxRootExtension.kt
│ └── internal
│ ├── Dependencies.kt
│ ├── GradleExt.kt
│ └── MapboxDependencies.kt
├── maps-sdk
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── maps-sdk.api
├── build.gradle.kts
├── proguard-rules.pro
└── src
│ ├── androidTest
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ ├── BaseAnimationMapTest.kt
│ │ │ ├── CameraForCoordinatesTest.kt
│ │ │ ├── EmptyActivity.kt
│ │ │ ├── LegacyOfflineManagerTest.kt
│ │ │ ├── MapIntegrationTest.kt
│ │ │ ├── MapSnapshotterTest.kt
│ │ │ ├── MapboxMapIntegrationTest.kt
│ │ │ ├── RenderTest.kt
│ │ │ ├── StyleLoadTest.kt
│ │ │ ├── TestUtils.kt
│ │ │ ├── ThreadCheckTest.kt
│ │ │ ├── ViewAnnotationTest.kt
│ │ │ └── renderer
│ │ │ └── egl
│ │ │ ├── EGLSupportTest.kt
│ │ │ └── RendererSetupTest.kt
│ └── res
│ │ ├── layout
│ │ ├── view_annotation.xml
│ │ └── view_annotation_wrap_content.xml
│ │ └── values
│ │ └── strings.xml
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ ├── CameraAttributeParser.kt
│ │ │ ├── DelegatingMapClient.kt
│ │ │ ├── DelegatingViewAnnotation.kt
│ │ │ ├── FontUtils.kt
│ │ │ ├── MapAttributeParser.kt
│ │ │ ├── MapControllable.kt
│ │ │ ├── MapController.kt
│ │ │ ├── MapGeofencingConsentImpl.kt
│ │ │ ├── MapInitOptions.kt
│ │ │ ├── MapProvider.kt
│ │ │ ├── MapSurface.kt
│ │ │ ├── MapView.kt
│ │ │ ├── MapboxConfigurationException.kt
│ │ │ ├── MapboxConstants.kt
│ │ │ ├── MapboxMap.kt
│ │ │ ├── MapboxMapRecorder.kt
│ │ │ ├── MapboxMapsOptions.kt
│ │ │ ├── MapboxTracing.kt
│ │ │ ├── NativeMapImpl.kt
│ │ │ ├── NativeObserver.kt
│ │ │ ├── SnapshotOverlay.kt
│ │ │ ├── SnapshotOverlayCallback.kt
│ │ │ ├── SnapshotOverlayOptions.kt
│ │ │ ├── SnapshotResultCallback.kt
│ │ │ ├── SnapshotStyleListener.kt
│ │ │ ├── Snapshotter.kt
│ │ │ ├── SnapshotterDestroyedException.kt
│ │ │ ├── Style.kt
│ │ │ ├── StyleObserver.kt
│ │ │ ├── Utils.kt
│ │ │ ├── attribution
│ │ │ ├── AttributionLayout.kt
│ │ │ ├── AttributionMeasure.kt
│ │ │ └── AttributionParser.kt
│ │ │ ├── coroutine
│ │ │ ├── MapCameraManagerDelegateExt.kt
│ │ │ ├── MapFeatureQueryDelegateExt.kt
│ │ │ └── MapboxMapExt.kt
│ │ │ ├── debugoptions
│ │ │ ├── CameraDebugView.kt
│ │ │ ├── DebugOptionsController.kt
│ │ │ ├── MapViewDebugOptions.kt
│ │ │ └── PaddingDebugView.kt
│ │ │ ├── plugin
│ │ │ ├── InvalidViewPluginHostException.kt
│ │ │ ├── MapAttributionDelegateImpl.kt
│ │ │ ├── MapDelegateProviderImpl.kt
│ │ │ └── MapPluginRegistry.kt
│ │ │ ├── renderer
│ │ │ ├── FpsManager.kt
│ │ │ ├── MapboxRenderThread.kt
│ │ │ ├── MapboxRenderer.kt
│ │ │ ├── MapboxSurfaceHolderRenderer.kt
│ │ │ ├── MapboxSurfaceRenderer.kt
│ │ │ ├── MapboxTextureViewRenderer.kt
│ │ │ ├── MapboxWidgetRenderer.kt
│ │ │ ├── OnFpsChangedListener.kt
│ │ │ ├── RenderEvent.kt
│ │ │ ├── RenderHandlerThread.kt
│ │ │ ├── RenderThread.kt
│ │ │ ├── RenderThreadStatsRecorder.kt
│ │ │ ├── RendererError.kt
│ │ │ ├── RendererSetupErrorListener.kt
│ │ │ ├── egl
│ │ │ │ ├── EGLConfigChooser.kt
│ │ │ │ └── EGLCore.kt
│ │ │ ├── gl
│ │ │ │ ├── GlUtils.kt
│ │ │ │ ├── PixelReader.kt
│ │ │ │ └── TextureRenderer.kt
│ │ │ └── widget
│ │ │ │ ├── BitmapWidget.kt
│ │ │ │ ├── BitmapWidgetRenderer.kt
│ │ │ │ ├── Widget.kt
│ │ │ │ ├── WidgetPosition.kt
│ │ │ │ └── WidgetRenderer.kt
│ │ │ └── viewannotation
│ │ │ ├── OnViewAnnotationUpdatedListener.kt
│ │ │ ├── ViewAnnotationManager.kt
│ │ │ ├── ViewAnnotationManagerImpl.kt
│ │ │ ├── ViewAnnotationOptionsKtx.kt
│ │ │ ├── ViewAnnotationUpdateMode.kt
│ │ │ └── ViewAnnotationVisibility.kt
│ ├── res-public
│ │ └── values
│ │ │ └── public.xml
│ └── res
│ │ ├── drawable-hdpi
│ │ ├── mapbox_logo_helmet.png
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-mdpi
│ │ ├── mapbox_logo_helmet.png
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-xhdpi
│ │ ├── mapbox_logo_helmet.png
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-xxhdpi
│ │ ├── mapbox_logo_helmet.png
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-xxxhdpi
│ │ ├── mapbox_logo_helmet.png
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable
│ │ ├── mapbox_logo_helmet.png
│ │ ├── mapbox_logo_icon.png
│ │ └── mapbox_rounded_corner.xml
│ │ ├── values-ar
│ │ └── strings.xml
│ │ ├── values-be
│ │ └── strings.xml
│ │ ├── values-bg
│ │ └── strings.xml
│ │ ├── values-ca
│ │ └── strings.xml
│ │ ├── values-cs
│ │ └── strings.xml
│ │ ├── values-da
│ │ └── strings.xml
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-es
│ │ └── strings.xml
│ │ ├── values-fr
│ │ └── strings.xml
│ │ ├── values-gl
│ │ └── strings.xml
│ │ ├── values-it
│ │ └── strings.xml
│ │ ├── values-iw
│ │ └── strings.xml
│ │ ├── values-ja
│ │ └── strings.xml
│ │ ├── values-ko
│ │ └── strings.xml
│ │ ├── values-lt
│ │ └── strings.xml
│ │ ├── values-nl
│ │ └── strings.xml
│ │ ├── values-no
│ │ └── strings.xml
│ │ ├── values-pl
│ │ └── strings.xml
│ │ ├── values-pt
│ │ └── strings.xml
│ │ ├── values-ru
│ │ └── strings.xml
│ │ ├── values-sv
│ │ └── strings.xml
│ │ ├── values-uk
│ │ └── strings.xml
│ │ ├── values-vi
│ │ └── strings.xml
│ │ ├── values-zh-rCN
│ │ └── strings.xml
│ │ ├── values-zh-rHK
│ │ └── strings.xml
│ │ ├── values-zh-rTW
│ │ └── strings.xml
│ │ ├── values-zh
│ │ └── strings.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── ids.xml
│ │ └── strings.xml
│ └── test
│ ├── java
│ └── com
│ │ └── mapbox
│ │ ├── TestUtils.kt
│ │ └── maps
│ │ ├── CameraAttributeParserTest.kt
│ │ ├── EqualsHashCodeTest.kt
│ │ ├── FontUtilsTest.kt
│ │ ├── MapAttributeParserTest.kt
│ │ ├── MapControllerTest.kt
│ │ ├── MapInitOptionsTest.kt
│ │ ├── MapSurfaceTest.kt
│ │ ├── MapViewTest.kt
│ │ ├── MapViewTypedArrayTest.kt
│ │ ├── MapboxMapExtTest.kt
│ │ ├── MapboxMapRecorderTest.kt
│ │ ├── MapboxMapTest.kt
│ │ ├── MapboxOptionsTest.kt
│ │ ├── MapboxTracingTest.kt
│ │ ├── NativeMapTest.kt
│ │ ├── NativeObserverTest.kt
│ │ ├── ShadowCameraManager.java
│ │ ├── ShadowMap.java
│ │ ├── ShadowMapRecorder.java
│ │ ├── ShadowMapSnapshotter.java
│ │ ├── ShadowStyleManager.java
│ │ ├── ShadowTracing.kt
│ │ ├── SnapshotterTest.kt
│ │ ├── StyleObserverTest.kt
│ │ ├── StyleTest.kt
│ │ ├── ViewAnnotationManagerAddTest.kt
│ │ ├── ViewAnnotationManagerTest.kt
│ │ ├── ViewAnnotationManagerZOrderingTest.kt
│ │ ├── attribution
│ │ ├── AttributionParseTest.java
│ │ └── MapAttributionDelegateImplTest.kt
│ │ ├── debugoptions
│ │ └── DebugOptionsControllerTest.kt
│ │ ├── plugin
│ │ ├── MapDelegateProviderTest.kt
│ │ └── MapPluginRegistryTest.kt
│ │ ├── renderer
│ │ ├── EglConfigChooserTest.kt
│ │ ├── FpsManagerTest.kt
│ │ ├── MapboxRenderThreadTest.kt
│ │ ├── MapboxRendererTest.kt
│ │ ├── MapboxSurfaceHolderRendererTest.kt
│ │ ├── MapboxSurfaceRendererTest.kt
│ │ ├── MapboxTextureViewRendererTest.kt
│ │ └── RenderHandlerThreadTest.kt
│ │ └── shadows
│ │ ├── ShadowCancelable.java
│ │ ├── ShadowCoordinateBounds.java
│ │ ├── ShadowEventsService.kt
│ │ ├── ShadowMapsResourceOptions.java
│ │ ├── ShadowObservable.java
│ │ └── ShadowTelemetryService.kt
│ └── resources
│ └── robolectric.properties
├── metalava
├── README.md
├── metalava.jar
├── metalava.patch
└── update.sh
├── module-telemetry
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── module-telemetry.api
├── build.gradle.kts
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── module
│ │ └── telemetry
│ │ └── MapTelemetryEventsServiceTest.kt
│ ├── main
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── module
│ │ └── telemetry
│ │ ├── MapBaseEvent.kt
│ │ ├── MapEventFactory.kt
│ │ ├── MapLoadEvent.kt
│ │ ├── MapTelemetryImpl.kt
│ │ ├── PerformanceEvent.kt
│ │ └── PhoneState.kt
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── module
│ └── telemetry
│ ├── EqualsHashCodeTest.kt
│ ├── MapEventFactoryTest.kt
│ └── MapTelemetryTest.kt
├── plugin-animation
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-animation.api
├── build.gradle.kts
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── animation
│ │ ├── CameraAnimationsExt.kt
│ │ ├── CameraAnimationsPluginImpl.kt
│ │ ├── CameraAnimatorsFactory.kt
│ │ ├── CameraTransform.kt
│ │ ├── HighLevelAnimatorSet.kt
│ │ └── animator
│ │ ├── CameraAnchorAnimator.kt
│ │ ├── CameraAnimator.kt
│ │ ├── CameraBearingAnimator.kt
│ │ ├── CameraCenterAnimator.kt
│ │ ├── CameraPaddingAnimator.kt
│ │ ├── CameraPitchAnimator.kt
│ │ ├── CameraZoomAnimator.kt
│ │ └── Evaluators.kt
│ └── test
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── animation
│ │ ├── CameraAnimationsChangeListenersTest.kt
│ │ ├── CameraAnimationsListenersTest.kt
│ │ ├── CameraAnimationsPluginImplTest.kt
│ │ ├── CameraAnimatorsFactoryTest.kt
│ │ └── animator
│ │ └── EvaluatorsTest.kt
│ └── resources
│ └── robolectric.properties
├── plugin-annotation
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-annotation.api
├── build.gradle.kts
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── annotation
│ │ ├── AnnotationExt.kt
│ │ ├── AnnotationManagerImpl.kt
│ │ ├── AnnotationPluginImpl.kt
│ │ ├── ConvertUtils.kt
│ │ ├── QueryAnnotationCallback.kt
│ │ └── generated
│ │ ├── CircleAnnotation.kt
│ │ ├── CircleAnnotationManager.kt
│ │ ├── CircleAnnotationOptions.kt
│ │ ├── OnCircleAnnotationClickListener.kt
│ │ ├── OnCircleAnnotationDragListener.kt
│ │ ├── OnCircleAnnotationInteractionListener.kt
│ │ ├── OnCircleAnnotationLongClickListener.kt
│ │ ├── OnPointAnnotationClickListener.kt
│ │ ├── OnPointAnnotationDragListener.kt
│ │ ├── OnPointAnnotationInteractionListener.kt
│ │ ├── OnPointAnnotationLongClickListener.kt
│ │ ├── OnPolygonAnnotationClickListener.kt
│ │ ├── OnPolygonAnnotationDragListener.kt
│ │ ├── OnPolygonAnnotationInteractionListener.kt
│ │ ├── OnPolygonAnnotationLongClickListener.kt
│ │ ├── OnPolylineAnnotationClickListener.kt
│ │ ├── OnPolylineAnnotationDragListener.kt
│ │ ├── OnPolylineAnnotationInteractionListener.kt
│ │ ├── OnPolylineAnnotationLongClickListener.kt
│ │ ├── PointAnnotation.kt
│ │ ├── PointAnnotationManager.kt
│ │ ├── PointAnnotationOptions.kt
│ │ ├── PolygonAnnotation.kt
│ │ ├── PolygonAnnotationManager.kt
│ │ ├── PolygonAnnotationOptions.kt
│ │ ├── PolylineAnnotation.kt
│ │ ├── PolylineAnnotationManager.kt
│ │ └── PolylineAnnotationOptions.kt
│ └── test
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── annotation
│ │ ├── AnnotationPluginImplTest.kt
│ │ ├── ShadowProjection.java
│ │ └── generated
│ │ ├── CircleAnnotationManagerTest.kt
│ │ ├── PointAnnotationManagerTest.kt
│ │ ├── PolygonAnnotationManagerTest.kt
│ │ └── PolylineAnnotationManagerTest.kt
│ └── resources
│ └── robolectric.properties
├── plugin-attribution
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-attribution.api
├── build.gradle.kts
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── plugin
│ │ │ └── attribution
│ │ │ ├── AttributionDialogManagerImpl.kt
│ │ │ ├── AttributionExt.kt
│ │ │ ├── AttributionPluginImpl.kt
│ │ │ ├── AttributionViewImpl.kt
│ │ │ └── generated
│ │ │ └── AttributionAttributeParser.kt
│ ├── res-public
│ │ └── values
│ │ │ └── public.xml
│ └── res
│ │ ├── drawable
│ │ ├── mapbox_attribution_default.xml
│ │ ├── mapbox_attribution_selected.xml
│ │ └── mapbox_attribution_selector.xml
│ │ ├── layout
│ │ └── mapbox_attribution_list_item.xml
│ │ ├── values-ar
│ │ └── strings.xml
│ │ ├── values-be
│ │ └── strings.xml
│ │ ├── values-bg
│ │ └── strings.xml
│ │ ├── values-ca
│ │ └── strings.xml
│ │ ├── values-cs
│ │ └── strings.xml
│ │ ├── values-da
│ │ └── strings.xml
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-es
│ │ └── strings.xml
│ │ ├── values-fr
│ │ └── strings.xml
│ │ ├── values-gl
│ │ └── strings.xml
│ │ ├── values-it
│ │ └── strings.xml
│ │ ├── values-iw
│ │ └── strings.xml
│ │ ├── values-ja
│ │ └── strings.xml
│ │ ├── values-ko
│ │ └── strings.xml
│ │ ├── values-lt
│ │ └── strings.xml
│ │ ├── values-nl
│ │ └── strings.xml
│ │ ├── values-no
│ │ └── strings.xml
│ │ ├── values-pl
│ │ └── strings.xml
│ │ ├── values-pt
│ │ └── strings.xml
│ │ ├── values-ru
│ │ └── strings.xml
│ │ ├── values-sv
│ │ └── strings.xml
│ │ ├── values-uk
│ │ └── strings.xml
│ │ ├── values-vi
│ │ └── strings.xml
│ │ ├── values-zh-rCN
│ │ └── strings.xml
│ │ ├── values-zh-rHK
│ │ └── strings.xml
│ │ ├── values-zh-rTW
│ │ └── strings.xml
│ │ ├── values-zh
│ │ └── strings.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ └── strings.xml
│ └── test
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── attribution
│ │ ├── AttributionDialogManagerImplTest.kt
│ │ ├── AttributionPluginImplImplTest.kt
│ │ ├── AttributionViewImplTest.kt
│ │ └── generated
│ │ └── AttributionAttributeParserTest.kt
│ └── resources
│ └── robolectric.properties
├── plugin-compass
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-compass.api
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── plugin
│ │ │ └── compass
│ │ │ ├── CompassExt.kt
│ │ │ ├── CompassViewImpl.kt
│ │ │ ├── CompassViewPlugin.kt
│ │ │ └── generated
│ │ │ └── CompassAttributeParser.kt
│ ├── res-public
│ │ └── values
│ │ │ └── public.xml
│ └── res
│ │ ├── drawable-hdpi
│ │ └── mapbox_compass_icon.png
│ │ ├── drawable-mdpi
│ │ └── mapbox_compass_icon.png
│ │ ├── drawable-xhdpi
│ │ └── mapbox_compass_icon.png
│ │ ├── drawable-xxhdpi
│ │ └── mapbox_compass_icon.png
│ │ ├── drawable-xxxhdpi
│ │ └── mapbox_compass_icon.png
│ │ ├── drawable
│ │ └── mapbox_compass_icon.png
│ │ ├── values-ar
│ │ └── strings.xml
│ │ ├── values-be
│ │ └── strings.xml
│ │ ├── values-bg
│ │ └── strings.xml
│ │ ├── values-ca
│ │ └── strings.xml
│ │ ├── values-cs
│ │ └── strings.xml
│ │ ├── values-da
│ │ └── strings.xml
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-es
│ │ └── strings.xml
│ │ ├── values-fr
│ │ └── strings.xml
│ │ ├── values-gl
│ │ └── strings.xml
│ │ ├── values-it
│ │ └── strings.xml
│ │ ├── values-iw
│ │ └── strings.xml
│ │ ├── values-ja
│ │ └── strings.xml
│ │ ├── values-ko
│ │ └── strings.xml
│ │ ├── values-lt
│ │ └── strings.xml
│ │ ├── values-nl
│ │ └── strings.xml
│ │ ├── values-no
│ │ └── strings.xml
│ │ ├── values-pl
│ │ └── strings.xml
│ │ ├── values-pt
│ │ └── strings.xml
│ │ ├── values-ru
│ │ └── strings.xml
│ │ ├── values-sv
│ │ └── strings.xml
│ │ ├── values-uk
│ │ └── strings.xml
│ │ ├── values-vi
│ │ └── strings.xml
│ │ ├── values-zh-rCN
│ │ └── strings.xml
│ │ ├── values-zh-rHK
│ │ └── strings.xml
│ │ ├── values-zh-rTW
│ │ └── strings.xml
│ │ ├── values-zh
│ │ └── strings.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── dimens.xml
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── plugin
│ └── compass
│ ├── CompassViewPluginTest.kt
│ └── generated
│ └── CompassAttributeParserTest.kt
├── plugin-gestures
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-gestures.api
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── plugin
│ │ │ └── gestures
│ │ │ ├── GestureState.kt
│ │ │ ├── GesturesConstants.kt
│ │ │ ├── GesturesExt.kt
│ │ │ ├── GesturesPluginImpl.kt
│ │ │ ├── StandardGestureListenerShim.java
│ │ │ └── generated
│ │ │ └── GesturesAttributeParser.kt
│ ├── res-public
│ │ └── values
│ │ │ └── public.xml
│ └── res
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── dimens.xml
│ │ └── strings.xml
│ └── test
│ ├── java
│ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── gestures
│ │ ├── GestureOptionsTest.kt
│ │ ├── GestureStateTest.kt
│ │ ├── GesturesPluginTest.kt
│ │ ├── StandardGestureListenerTest.java
│ │ └── generated
│ │ └── GesturesAttributeParserTest.kt
│ └── resources
│ └── robolectric.properties
├── plugin-lifecycle-lint-rules
├── .gitignore
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── lint
│ │ │ └── lifecycle
│ │ │ ├── LifecycleIssueRegistry.kt
│ │ │ └── LifecycleMethodDetector.kt
│ └── resources
│ │ └── META-INF
│ │ └── services
│ │ └── com.android.tools.lint.client.api.IssueRegistry
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── lint
│ └── LifecycleMethodDetectorTest.kt
├── plugin-lifecycle
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-lifecycle.api
├── build.gradle.kts
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── lifecycle
│ │ ├── LifecycleExt.kt
│ │ ├── MapboxLifecyclePluginImpl.kt
│ │ └── ViewLifecycleOwner.kt
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── extension
│ └── lifecycle
│ ├── MapboxLifecyclePluginImplTest.kt
│ └── ViewLifecycleOwnerTest.kt
├── plugin-locationcomponent
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-locationcomponent.api
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── plugin
│ │ │ └── locationcomponent
│ │ │ ├── DefaultLocationProvider.kt
│ │ │ ├── LayerSourceProvider.kt
│ │ │ ├── LocationCompassCalibrationListener.kt
│ │ │ ├── LocationCompassEngine.kt
│ │ │ ├── LocationComponentConstants.kt
│ │ │ ├── LocationComponentExt.kt
│ │ │ ├── LocationComponentPluginImpl.kt
│ │ │ ├── LocationComponentPositionManager.kt
│ │ │ ├── LocationIndicatorLayerRenderer.kt
│ │ │ ├── LocationIndicatorLayerWrapper.kt
│ │ │ ├── LocationLayerRenderer.kt
│ │ │ ├── LocationLayerWrapper.kt
│ │ │ ├── LocationPuckManager.kt
│ │ │ ├── ModelLayerRenderer.kt
│ │ │ ├── ModelLayerWrapper.kt
│ │ │ ├── ModelSourceWrapper.kt
│ │ │ ├── animators
│ │ │ ├── Evaluators.kt
│ │ │ ├── PuckAccuracyRadiusAnimator.kt
│ │ │ ├── PuckAnimator.kt
│ │ │ ├── PuckAnimatorManager.kt
│ │ │ ├── PuckBearingAnimator.kt
│ │ │ ├── PuckPositionAnimator.kt
│ │ │ └── PuckPulsingAnimator.kt
│ │ │ ├── generated
│ │ │ └── LocationComponentAttributeParser.kt
│ │ │ ├── model
│ │ │ └── AnimatableModel.kt
│ │ │ └── utils
│ │ │ ├── BitmapUtils.kt
│ │ │ └── ExpectedUtils.kt
│ ├── res-public
│ │ └── values
│ │ │ └── public.xml
│ └── res
│ │ ├── drawable-hdpi
│ │ ├── mapbox_mylocation_icon_bearing.png
│ │ └── mapbox_mylocation_icon_default.png
│ │ ├── drawable-mdpi
│ │ ├── mapbox_mylocation_icon_bearing.png
│ │ └── mapbox_mylocation_icon_default.png
│ │ ├── drawable-xhdpi
│ │ ├── mapbox_mylocation_icon_bearing.png
│ │ └── mapbox_mylocation_icon_default.png
│ │ ├── drawable-xxhdpi
│ │ ├── mapbox_mylocation_icon_bearing.png
│ │ └── mapbox_mylocation_icon_default.png
│ │ ├── drawable-xxxhdpi
│ │ ├── mapbox_mylocation_icon_bearing.png
│ │ └── mapbox_mylocation_icon_default.png
│ │ ├── drawable
│ │ ├── mapbox_info_bg_selector.xml
│ │ ├── mapbox_info_icon_default.xml
│ │ ├── mapbox_info_icon_selected.xml
│ │ ├── mapbox_mylocation_bg_shape.xml
│ │ ├── mapbox_mylocation_icon_bearing.png
│ │ ├── mapbox_mylocation_icon_default.png
│ │ ├── mapbox_popup_window_transparent.xml
│ │ ├── mapbox_rounded_corner.xml
│ │ ├── mapbox_user_bearing_icon.xml
│ │ ├── mapbox_user_icon.xml
│ │ ├── mapbox_user_icon_shadow.xml
│ │ ├── mapbox_user_icon_stale.xml
│ │ ├── mapbox_user_puck_icon.xml
│ │ └── mapbox_user_stroke_icon.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ └── dimens.xml
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ ├── plugin
│ └── locationcomponent
│ │ ├── DefaultLocationProviderTest.kt
│ │ ├── LayerSourceProviderTest.kt
│ │ ├── LocationCompassEngineTest.kt
│ │ ├── LocationComponentPluginImplTest.kt
│ │ ├── LocationComponentPositionManagerTest.kt
│ │ ├── LocationIndicatorLayerRendererTest.kt
│ │ ├── LocationIndicatorLayerWrapperTest.kt
│ │ ├── LocationLayerWrapperTest.kt
│ │ ├── LocationPuckManagerTest.kt
│ │ ├── ModelLayerRendererTest.kt
│ │ ├── ModelLayerWrapperTest.kt
│ │ ├── ModelSourceWrapperTest.kt
│ │ ├── ShadowLocationServiceFactory.java
│ │ ├── Utils.kt
│ │ ├── animators
│ │ ├── EvaluatorsTest.kt
│ │ ├── PuckAccuracyRadiusAnimatorTest.kt
│ │ ├── PuckAnimatorManagerTest.kt
│ │ ├── PuckBearingAnimatorTest.kt
│ │ ├── PuckPositionAnimatorTest.kt
│ │ └── PuckPulsingAnimatorTest.kt
│ │ └── generated
│ │ └── LocationComponentAttributeParserTest.kt
│ └── util
│ └── MockKExtensions.kt
├── plugin-logo
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-logo.api
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── plugin
│ │ │ └── logo
│ │ │ ├── LogoExt.kt
│ │ │ ├── LogoViewImpl.kt
│ │ │ ├── LogoViewPlugin.kt
│ │ │ └── generated
│ │ │ └── LogoAttributeParser.kt
│ ├── res-public
│ │ └── values
│ │ │ └── public.xml
│ └── res
│ │ ├── drawable-hdpi
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-mdpi
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-xhdpi
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-xxhdpi
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable-xxxhdpi
│ │ └── mapbox_logo_icon.png
│ │ ├── drawable
│ │ └── mapbox_logo_icon.png
│ │ ├── values-ar
│ │ └── strings.xml
│ │ ├── values-be
│ │ └── strings.xml
│ │ ├── values-bg
│ │ └── strings.xml
│ │ ├── values-ca
│ │ └── strings.xml
│ │ ├── values-cs
│ │ └── strings.xml
│ │ ├── values-da
│ │ └── strings.xml
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-es
│ │ └── strings.xml
│ │ ├── values-fr
│ │ └── strings.xml
│ │ ├── values-gl
│ │ └── strings.xml
│ │ ├── values-it
│ │ └── strings.xml
│ │ ├── values-iw
│ │ └── strings.xml
│ │ ├── values-ja
│ │ └── strings.xml
│ │ ├── values-ko
│ │ └── strings.xml
│ │ ├── values-lt
│ │ └── strings.xml
│ │ ├── values-nl
│ │ └── strings.xml
│ │ ├── values-no
│ │ └── strings.xml
│ │ ├── values-pl
│ │ └── strings.xml
│ │ ├── values-pt
│ │ └── strings.xml
│ │ ├── values-ru
│ │ └── strings.xml
│ │ ├── values-sv
│ │ └── strings.xml
│ │ ├── values-uk
│ │ └── strings.xml
│ │ ├── values-vi
│ │ └── strings.xml
│ │ ├── values-zh-rCN
│ │ └── strings.xml
│ │ ├── values-zh-rHK
│ │ └── strings.xml
│ │ ├── values-zh-rTW
│ │ └── strings.xml
│ │ ├── values-zh
│ │ └── strings.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── plugin
│ └── logo
│ ├── LogoViewImplPluginTest.kt
│ └── generated
│ └── LogoAttributeParserTest.kt
├── plugin-overlay
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-overlay.api
├── build.gradle.kts
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── overlay
│ │ ├── MapOverlayExt.kt
│ │ └── MapOverlayPluginImpl.kt
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── plugin
│ └── overlay
│ └── MapOverlayPluginTest.kt
├── plugin-scalebar
├── .gitignore
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-scalebar.api
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── plugin
│ │ │ └── scalebar
│ │ │ ├── LocaleUnitResolver.kt
│ │ │ ├── ScaleBarConstant.kt
│ │ │ ├── ScaleBarExt.kt
│ │ │ ├── ScaleBarImpl.kt
│ │ │ ├── ScaleBarPluginImpl.kt
│ │ │ └── generated
│ │ │ └── ScaleBarAttributeParser.kt
│ ├── res-public
│ │ └── values
│ │ │ └── public.xml
│ └── res
│ │ └── values
│ │ └── attrs.xml
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ └── plugin
│ └── scalebar
│ ├── ScaleBarImplTest.kt
│ ├── ScaleBarPluginTest.kt
│ ├── ShadowProjection.java
│ └── generated
│ └── ScaleBarAttributeParserTest.kt
├── plugin-viewport
├── README.md
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── plugin-viewport.api
├── build.gradle.kts
└── src
│ ├── main
│ └── kotlin
│ │ └── com
│ │ └── mapbox
│ │ └── maps
│ │ └── plugin
│ │ └── viewport
│ │ ├── ViewportExt.kt
│ │ ├── ViewportPluginImpl.kt
│ │ ├── state
│ │ ├── FollowPuckViewportStateImpl.kt
│ │ └── OverviewViewportStateImpl.kt
│ │ ├── transition
│ │ ├── DefaultViewportTransitionImpl.kt
│ │ ├── ImmediateViewportTransition.kt
│ │ ├── MapboxViewportTransitionFactory.kt
│ │ └── TransitionUtils.kt
│ │ └── util
│ │ └── ViewportTelemetryEvents.kt
│ └── test
│ └── kotlin
│ └── com
│ └── mapbox
│ └── maps
│ └── plugin
│ └── viewport
│ ├── ViewportPluginImplTest.kt
│ ├── ViewportTestConstants.kt
│ ├── state
│ ├── FollowPuckViewportStateImplTest.kt
│ └── OverviewViewportStateImplTest.kt
│ └── transition
│ ├── DefaultViewportTransitionImplTest.kt
│ ├── ImmediateViewportTransitionImplTest.kt
│ ├── MapboxViewportTransitionFactoryTest.kt
│ └── TransitionUtilsTest.kt
├── scripts
├── check-permissions.py
├── checksum-base.sh
├── checksum.sh
├── ci-circleci-start-pipeline.py
├── ci-e2e-compatibility-start-pipeline.py
├── ci-e2e-job-trigger-checker.sh
├── ci-github-set-commit-status.py
├── ci-weekly-trigger.py
├── clean.sh
├── install-pre-commit
│ ├── install-pre-commit.sh
│ └── pre-commit.sh
├── merge-gradle-dependency-output.py
├── sanity-test
│ ├── exclude-sanity-test-gen.json
│ ├── generate-sanity-test.js
│ └── template-sanity-test.ejs
├── semver-check.sh
├── start-internal-release-pipeline.py
├── trigger-maps-documentation-deploy-steps.sh
└── update-android-docs.sh
├── sdk-base
├── .gitignore
├── api
│ ├── Release
│ │ └── metalava.txt
│ └── sdk-base.api
├── build.gradle.kts
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── mapbox
│ │ │ ├── common
│ │ │ └── MapboxMapsAndroidLogger.kt
│ │ │ └── maps
│ │ │ ├── ClickInteraction.kt
│ │ │ ├── DragInteraction.kt
│ │ │ ├── ExtensionUtils.kt
│ │ │ ├── ImageHolder.kt
│ │ │ ├── LongClickInteraction.kt
│ │ │ ├── MapInteraction.java
│ │ │ ├── MapLoadingErrorDelegate.kt
│ │ │ ├── MapboxDelicateApi.kt
│ │ │ ├── MapboxExceptions.kt
│ │ │ ├── MapboxExperimental.kt
│ │ │ ├── MapboxLifecycleObserver.kt
│ │ │ ├── MapboxLogger.kt
│ │ │ ├── MapboxStyleManager.kt
│ │ │ ├── ThreadChecker.kt
│ │ │ ├── dsl
│ │ │ └── CameraOptionsKtx.kt
│ │ │ ├── exception
│ │ │ └── WorkerThreadException.kt
│ │ │ ├── extension
│ │ │ ├── observable
│ │ │ │ ├── EventsExtension.kt
│ │ │ │ ├── eventdata
│ │ │ │ │ ├── CameraChangedEventData.kt
│ │ │ │ │ ├── MapIdleEventData.kt
│ │ │ │ │ ├── MapLoadedEventData.kt
│ │ │ │ │ ├── MapLoadingErrorEventData.kt
│ │ │ │ │ ├── RenderFrameFinishedEventData.kt
│ │ │ │ │ ├── RenderFrameStartedEventData.kt
│ │ │ │ │ ├── ResourceEventData.kt
│ │ │ │ │ ├── SourceAddedEventData.kt
│ │ │ │ │ ├── SourceDataLoadedEventData.kt
│ │ │ │ │ ├── SourceRemovedEventData.kt
│ │ │ │ │ ├── StyleDataLoadedEventData.kt
│ │ │ │ │ ├── StyleImageMissingEventData.kt
│ │ │ │ │ ├── StyleImageUnusedEventData.kt
│ │ │ │ │ └── StyleLoadedEventData.kt
│ │ │ │ └── model
│ │ │ │ │ ├── DataSourceType.kt
│ │ │ │ │ ├── Error.kt
│ │ │ │ │ ├── MapLoadErrorType.kt
│ │ │ │ │ ├── RenderMode.kt
│ │ │ │ │ ├── Request.kt
│ │ │ │ │ ├── RequestPriority.kt
│ │ │ │ │ ├── RequestType.kt
│ │ │ │ │ ├── Response.kt
│ │ │ │ │ ├── ResponseErrorReason.kt
│ │ │ │ │ ├── ResponseSourceType.kt
│ │ │ │ │ ├── SourceDataType.kt
│ │ │ │ │ ├── StyleDataType.kt
│ │ │ │ │ └── TileID.kt
│ │ │ └── style
│ │ │ │ └── StyleContract.kt
│ │ │ ├── geofencing
│ │ │ └── MapGeofencingConsent.kt
│ │ │ ├── interactions
│ │ │ ├── FeatureState.kt
│ │ │ ├── FeatureStateCallback.kt
│ │ │ ├── FeatureStateKey.kt
│ │ │ ├── FeaturesetFeature.kt
│ │ │ ├── QueryRenderedFeaturesetFeaturesCallback.kt
│ │ │ ├── TypedFeaturesetDescriptor.kt
│ │ │ └── standard
│ │ │ │ └── generated
│ │ │ │ ├── StandardBuildings.kt
│ │ │ │ ├── StandardBuildingsFeature.kt
│ │ │ │ ├── StandardBuildingsState.kt
│ │ │ │ ├── StandardBuildingsStateKey.kt
│ │ │ │ ├── StandardInteractionsExt.kt
│ │ │ │ ├── StandardPlaceLabels.kt
│ │ │ │ ├── StandardPlaceLabelsFeature.kt
│ │ │ │ ├── StandardPlaceLabelsState.kt
│ │ │ │ ├── StandardPlaceLabelsStateKey.kt
│ │ │ │ ├── StandardPoi.kt
│ │ │ │ ├── StandardPoiFeature.kt
│ │ │ │ ├── StandardPoiState.kt
│ │ │ │ └── StandardPoiStateKey.kt
│ │ │ ├── module
│ │ │ ├── MapTelemetry.java
│ │ │ └── TelemetryEvent.kt
│ │ │ ├── plugin
│ │ │ ├── ConfigProperties.kt
│ │ │ ├── ContextBinder.kt
│ │ │ ├── InvalidPluginConfigurationException.kt
│ │ │ ├── LifecyclePlugin.kt
│ │ │ ├── MapCameraPlugin.kt
│ │ │ ├── MapPlugin.kt
│ │ │ ├── MapSizePlugin.kt
│ │ │ ├── MapStyleObserverPlugin.kt
│ │ │ ├── Plugin.kt
│ │ │ ├── ViewPlugin.kt
│ │ │ ├── animation
│ │ │ │ ├── CameraAnimationsLifecycleListener.kt
│ │ │ │ ├── CameraAnimationsPlugin.kt
│ │ │ │ ├── CameraAnimatorChangeListener.kt
│ │ │ │ ├── CameraAnimatorNullableChangeListener.kt
│ │ │ │ ├── CameraAnimatorOptions.kt
│ │ │ │ ├── CameraAnimatorType.kt
│ │ │ │ ├── MapAnimationOptions.kt
│ │ │ │ └── MapAnimationOwnerRegistry.kt
│ │ │ ├── annotation
│ │ │ │ ├── Annotation.kt
│ │ │ │ ├── AnnotationConfig.kt
│ │ │ │ ├── AnnotationManager.kt
│ │ │ │ ├── AnnotationOptions.kt
│ │ │ │ ├── AnnotationPlugin.kt
│ │ │ │ ├── AnnotationSourceOptions.kt
│ │ │ │ ├── AnnotationType.kt
│ │ │ │ ├── ClusterAnnotationManager.kt
│ │ │ │ ├── ClusterFeature.kt
│ │ │ │ ├── ClusterOptions.kt
│ │ │ │ ├── OnAnnotationClickListener.kt
│ │ │ │ ├── OnAnnotationDragListener.kt
│ │ │ │ ├── OnAnnotationInteractionListener.kt
│ │ │ │ ├── OnAnnotationLongClickListener.kt
│ │ │ │ ├── OnClusterClickListener.kt
│ │ │ │ └── OnClusterLongClickListener.kt
│ │ │ ├── attribution
│ │ │ │ ├── Attribution.kt
│ │ │ │ ├── AttributionDialogManager.kt
│ │ │ │ ├── AttributionParserConfig.kt
│ │ │ │ ├── AttributionPlugin.kt
│ │ │ │ ├── AttributionView.kt
│ │ │ │ ├── OnAttributionClickListener.kt
│ │ │ │ └── generated
│ │ │ │ │ ├── AttributionSettingsBase.kt
│ │ │ │ │ ├── AttributionSettingsData.kt
│ │ │ │ │ └── AttributionSettingsInterface.kt
│ │ │ ├── compass
│ │ │ │ ├── CompassPlugin.kt
│ │ │ │ ├── CompassView.kt
│ │ │ │ ├── OnCompassClickListener.kt
│ │ │ │ └── generated
│ │ │ │ │ ├── CompassSettingsBase.kt
│ │ │ │ │ ├── CompassSettingsData.kt
│ │ │ │ │ └── CompassSettingsInterface.kt
│ │ │ ├── delegates
│ │ │ │ ├── MapAttributionDelegate.kt
│ │ │ │ ├── MapCameraManagerDelegate.kt
│ │ │ │ ├── MapDelegateProvider.kt
│ │ │ │ ├── MapFeatureQueryDelegate.kt
│ │ │ │ ├── MapFeatureStateDelegate.kt
│ │ │ │ ├── MapInteractionDelegate.kt
│ │ │ │ ├── MapListenerDelegate.kt
│ │ │ │ ├── MapPluginExtensionsDelegate.kt
│ │ │ │ ├── MapPluginProviderDelegate.kt
│ │ │ │ ├── MapProjectionDelegate.kt
│ │ │ │ ├── MapTransformDelegate.kt
│ │ │ │ └── listeners
│ │ │ │ │ ├── OnCameraChangeListener.kt
│ │ │ │ │ ├── OnMapIdleListener.kt
│ │ │ │ │ ├── OnMapLoadErrorListener.kt
│ │ │ │ │ ├── OnMapLoadedListener.kt
│ │ │ │ │ ├── OnRenderFrameFinishedListener.kt
│ │ │ │ │ ├── OnRenderFrameStartedListener.kt
│ │ │ │ │ ├── OnSourceAddedListener.kt
│ │ │ │ │ ├── OnSourceDataLoadedListener.kt
│ │ │ │ │ ├── OnSourceRemovedListener.kt
│ │ │ │ │ ├── OnStyleDataLoadedListener.kt
│ │ │ │ │ ├── OnStyleImageMissingListener.kt
│ │ │ │ │ ├── OnStyleImageUnusedListener.kt
│ │ │ │ │ └── OnStyleLoadedListener.kt
│ │ │ ├── gestures
│ │ │ │ ├── GesturesListeners.kt
│ │ │ │ ├── GesturesPlugin.kt
│ │ │ │ └── generated
│ │ │ │ │ ├── GesturesSettingsBase.kt
│ │ │ │ │ ├── GesturesSettingsData.kt
│ │ │ │ │ └── GesturesSettingsInterface.kt
│ │ │ ├── lifecycle
│ │ │ │ └── MapboxLifecyclePlugin.kt
│ │ │ ├── locationcomponent
│ │ │ │ ├── LocationComponentPlugin.kt
│ │ │ │ ├── LocationConsumer.kt
│ │ │ │ ├── LocationProvider.kt
│ │ │ │ ├── OnIndicatorAccuracyRadiusChangedListener.kt
│ │ │ │ ├── OnIndicatorBearingChangedListener.kt
│ │ │ │ ├── OnIndicatorPositionChangedListener.kt
│ │ │ │ ├── PuckLocatedAtPointListener.kt
│ │ │ │ └── generated
│ │ │ │ │ ├── LocationComponentSettingsBase.kt
│ │ │ │ │ ├── LocationComponentSettingsData.kt
│ │ │ │ │ └── LocationComponentSettingsInterface.kt
│ │ │ ├── logo
│ │ │ │ ├── LogoPlugin.kt
│ │ │ │ ├── LogoView.kt
│ │ │ │ └── generated
│ │ │ │ │ ├── LogoSettingsBase.kt
│ │ │ │ │ ├── LogoSettingsData.kt
│ │ │ │ │ └── LogoSettingsInterface.kt
│ │ │ ├── overlay
│ │ │ │ ├── MapOverlayCoordinatesProvider.kt
│ │ │ │ ├── MapOverlayPlugin.kt
│ │ │ │ └── OnReframeFinished.kt
│ │ │ ├── scalebar
│ │ │ │ ├── ScaleBar.kt
│ │ │ │ ├── ScaleBarPlugin.kt
│ │ │ │ └── generated
│ │ │ │ │ ├── ScaleBarSettingsBase.kt
│ │ │ │ │ ├── ScaleBarSettingsData.kt
│ │ │ │ │ └── ScaleBarSettingsInterface.kt
│ │ │ └── viewport
│ │ │ │ ├── CompletionListener.kt
│ │ │ │ ├── ViewportConstants.kt
│ │ │ │ ├── ViewportPlugin.kt
│ │ │ │ ├── ViewportStatus.kt
│ │ │ │ ├── ViewportStatusObserver.kt
│ │ │ │ ├── data
│ │ │ │ ├── DefaultViewportTransitionOptions.kt
│ │ │ │ ├── FollowPuckViewportStateBearing.kt
│ │ │ │ ├── FollowPuckViewportStateOptions.kt
│ │ │ │ ├── OverviewViewportStateOptions.kt
│ │ │ │ ├── ViewportOptions.kt
│ │ │ │ └── ViewportStatusChangeReason.kt
│ │ │ │ ├── state
│ │ │ │ ├── FollowPuckViewportState.kt
│ │ │ │ ├── OverviewViewportState.kt
│ │ │ │ ├── ViewportState.kt
│ │ │ │ └── ViewportStateDataObserver.kt
│ │ │ │ └── transition
│ │ │ │ ├── DefaultViewportTransition.kt
│ │ │ │ └── ViewportTransition.kt
│ │ │ ├── threading
│ │ │ └── AnimationThreadController.kt
│ │ │ └── util
│ │ │ ├── CameraOptionsUtils.kt
│ │ │ ├── CoreGesturesHandler.kt
│ │ │ └── MathUtils.kt
│ ├── ksp
│ │ └── com
│ │ │ └── mapbox
│ │ │ └── maps
│ │ │ └── plugin
│ │ │ ├── attribution
│ │ │ └── generated
│ │ │ │ └── AttributionSettings.kt
│ │ │ ├── compass
│ │ │ └── generated
│ │ │ │ └── CompassSettings.kt
│ │ │ ├── gestures
│ │ │ └── generated
│ │ │ │ └── GesturesSettings.kt
│ │ │ ├── locationcomponent
│ │ │ └── generated
│ │ │ │ └── LocationComponentSettings.kt
│ │ │ ├── logo
│ │ │ └── generated
│ │ │ │ └── LogoSettings.kt
│ │ │ └── scalebar
│ │ │ └── generated
│ │ │ └── ScaleBarSettings.kt
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── mapbox
│ └── maps
│ ├── EqualsHashCodeTest.kt
│ ├── dsl
│ └── CameraOptionsKtxTest.kt
│ └── util
│ └── MathUtilsTest.kt
└── settings.gradle.kts
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.{kt,kts}]
2 | indent_size=2
3 | insert_final_newline=false
4 | ktlint_standard_no-wildcard-imports=disabled
5 | ktlint_standard_trailing-comma-on-call-site=disabled
6 | ktlint_standard_trailing-comma-on-declaration-site=disabled
7 | ktlint_standard_annotation=disabled
8 | ktlint_standard_multiline-if-else=disabled
9 | ktlint_standard_argument-list-wrapping=disabled
10 | ktlint_standard_spacing-between-declarations-with-annotations=disabled
11 | ktlint_standard_spacing-between-declarations-with-comments=disabled
12 | ktlint_standard_no-empty-first-line-in-method-block=disabled
13 | ktlint_standard_argument-list-wrapping=disabled
14 | ktlint_standard_indent=disabled
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Merge strategies
2 | app/src/main/AndroidManifest.xml merge=union
3 | app/src/main/res/values/example_categories.xml merge=union
4 | app/src/main/res/values/example_descriptions.xml merge=union
5 | app/src/main/res/values/example_titles.xml merge=union
6 | CHANGELOG.md merge=union
7 |
8 | # Mark files as generated in Github PRs
9 | **/generated/* linguist-generated=true
10 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @mapbox/maps-android
2 | *.api @mapbox/maps-android @mapbox/maps-ios
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature Request
3 | about: To request a new feature, please provide detail on the outcome desired, solutions attempted and any suggested approaches.
4 | title: ''
5 | labels: 'feature :green apple:'
6 | assignees: ''
7 |
8 | ---
9 |
10 | ## New Feature
11 |
12 | <- Description of the feature being requested and any outcomes desired, an example use case, and any suggestions for solution ->
13 |
14 | ## Why
15 | <- 1-2 sentence description of why you're requesting this feature. What problem does it solve? Why is it valuable? ->
16 |
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /captures
12 | .externalNativeBuild
13 | .cxx
14 | **/build
15 | /.idea
16 | app/src/main/res/values/developer-config.xml
17 | app/src/androidTest/java/com/mapbox/maps/testapp/activity
18 | **/developer-config.xml
19 | node_modules/
20 | gh_token.txt
21 | android-docs-repo
22 | examples.zip
23 | release-docs/
24 | release-docs.zip
25 | /tmp/checksum.txt
26 | api_compat_report/
27 | logs/
28 | **/src/main/assets/sdk_versions/
29 |
--------------------------------------------------------------------------------
/android-auto-app/src/main/java/com/mapbox/maps/testapp/auto/app/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.auto.app
2 |
3 | import android.os.Bundle
4 | import androidx.appcompat.app.AppCompatActivity
5 | import com.mapbox.maps.testapp.auto.R
6 |
7 | class MainActivity : AppCompatActivity() {
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_main)
11 | }
12 | }
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #000000
4 |
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Mapbox Map for Android Auto
4 |
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
16 |
17 |
--------------------------------------------------------------------------------
/android-auto-app/src/main/res/xml/automotive_app_desc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/permission.json:
--------------------------------------------------------------------------------
1 | [
2 | "android.permission.ACCESS_BACKGROUND_LOCATION",
3 | "android.permission.ACCESS_COARSE_LOCATION",
4 | "android.permission.ACCESS_FINE_LOCATION",
5 | "android.permission.ACCESS_NETWORK_STATE",
6 | "android.permission.ACCESS_WIFI_STATE",
7 | "android.permission.INTERNET",
8 | "android.permission.POST_NOTIFICATIONS",
9 | "android.permission.REORDER_TASKS",
10 | "com.mapbox.maps.testapp.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
11 | ]
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/proguard-rules.pro
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/mapbox/maps/testapp/attribution/AttributionAppCompatThemeTest.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.attribution
2 |
3 | import androidx.test.ext.junit.rules.ActivityScenarioRule
4 | import androidx.test.ext.junit.runners.AndroidJUnit4
5 | import com.mapbox.maps.testapp.TestMapActivity
6 | import org.junit.Rule
7 | import org.junit.Test
8 | import org.junit.runner.RunWith
9 |
10 | @RunWith(AndroidJUnit4::class)
11 | class AttributionAppCompatThemeTest : BaseAttributionThemeTest() {
12 |
13 | @get:Rule
14 | var activityRule: ActivityScenarioRule = ActivityScenarioRule(
15 | TestMapActivity::class.java
16 | )
17 | @Test
18 | fun testAppCompatTheme() {
19 | clickAttribution()
20 | }
21 | }
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/mapbox/maps/testapp/integration/surface/MapViewSurfaceModeTest.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.integration.surface
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import com.mapbox.maps.testapp.examples.SimpleMapActivity
5 | import com.mapbox.maps.testapp.integration.BaseReuseIntegrationTest
6 | import org.junit.runner.RunWith
7 |
8 | @RunWith(AndroidJUnit4::class)
9 | class MapViewSurfaceModeTest : BaseReuseIntegrationTest(SimpleMapActivity::class.java)
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/mapbox/maps/testapp/integration/surface/SurfaceTest.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.integration.surface
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import com.mapbox.maps.testapp.examples.SurfaceActivity
5 | import com.mapbox.maps.testapp.integration.BaseReuseIntegrationTest
6 | import org.junit.runner.RunWith
7 |
8 | /**
9 | * Regression test that validates reopening an Activity with a surface using ContextMode.SHARED
10 | */
11 | @RunWith(AndroidJUnit4::class)
12 | class SurfaceTest : BaseReuseIntegrationTest(SurfaceActivity::class.java)
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/mapbox/maps/testapp/integration/texture/MapViewTextureModeTest.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.integration.texture
2 |
3 | import androidx.test.ext.junit.runners.AndroidJUnit4
4 | import com.mapbox.maps.testapp.examples.TextureViewActivity
5 | import com.mapbox.maps.testapp.integration.BaseReuseIntegrationTest
6 | import org.junit.runner.RunWith
7 |
8 | @RunWith(AndroidJUnit4::class)
9 | class MapViewTextureModeTest : BaseReuseIntegrationTest(TextureViewActivity::class.java)
--------------------------------------------------------------------------------
/app/src/androidTest/res/layout/view_annotation.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/assets/dva-sf-construction.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "features": [
4 | {
5 | "type": "Feature",
6 | "id": "construction-1",
7 | "properties": {},
8 | "geometry": {
9 | "coordinates": [
10 | -122.41444169500868,
11 | 37.6344580806383
12 | ],
13 | "type": "Point"
14 | }
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/app/src/main/assets/ego_car.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/assets/ego_car.glb
--------------------------------------------------------------------------------
/app/src/main/assets/sportcar.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/assets/sportcar.glb
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/app/src/main/java/com/mapbox/maps/testapp/EmptyActivity.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp
2 |
3 | import androidx.appcompat.app.AppCompatActivity
4 |
5 | class EmptyActivity : AppCompatActivity()
--------------------------------------------------------------------------------
/app/src/main/java/com/mapbox/maps/testapp/EmptyFragmentActivity.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp
2 |
3 | import android.os.Bundle
4 | import androidx.fragment.app.FragmentActivity
5 | import com.mapbox.maps.MapView
6 |
7 | class EmptyFragmentActivity : FragmentActivity() {
8 |
9 | override fun onCreate(savedInstanceState: Bundle?) {
10 | super.onCreate(savedInstanceState)
11 | val mapView = MapView(this)
12 | setContentView(mapView)
13 | }
14 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/mapbox/maps/testapp/examples/MapboxStudioStyleActivity.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.examples
2 |
3 | import android.os.Bundle
4 | import androidx.appcompat.app.AppCompatActivity
5 | import com.mapbox.maps.testapp.databinding.ActivityStyleMapboxStudioBinding
6 |
7 | /**
8 | * Example of displaying a custom Mapbox-hosted style, the default style uri is set in layout file.
9 | */
10 | class MapboxStudioStyleActivity : AppCompatActivity() {
11 |
12 | override fun onCreate(savedInstanceState: Bundle?) {
13 | super.onCreate(savedInstanceState)
14 | val binding = ActivityStyleMapboxStudioBinding.inflate(layoutInflater)
15 | setContentView(binding.root)
16 | }
17 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/mapbox/maps/testapp/examples/ScaleBarActivity.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.examples
2 |
3 | import android.os.Bundle
4 | import androidx.appcompat.app.AppCompatActivity
5 | import com.mapbox.maps.testapp.R
6 |
7 | /**
8 | * Activity to showcase scale bar custom configuration using xml attributes.
9 | */
10 | class ScaleBarActivity : AppCompatActivity() {
11 |
12 | override fun onCreate(savedInstanceState: Bundle?) {
13 | super.onCreate(savedInstanceState)
14 | setContentView(R.layout.activity_scale_bar)
15 | }
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/mapbox/maps/testapp/examples/fragment/MapViewPager.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.examples.fragment
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.SurfaceView
6 | import android.view.View
7 | import androidx.viewpager.widget.PagerTabStrip
8 | import androidx.viewpager.widget.ViewPager
9 |
10 | class MapViewPager(
11 | context: Context?,
12 | attrs: AttributeSet?
13 | ) :
14 | ViewPager(context!!, attrs) {
15 | override fun canScroll(
16 | v: View,
17 | checkV: Boolean,
18 | dx: Int,
19 | x: Int,
20 | y: Int
21 | ): Boolean {
22 | return v is SurfaceView || v is PagerTabStrip || super.canScroll(v, checkV, dx, x, y)
23 | }
24 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/mapbox/maps/testapp/model/IssModel.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.model
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | data class IssModel(
6 | @SerializedName("iss_position") var issPosition: IssPosition? = null,
7 | @SerializedName("message") var message: String? = null,
8 | @SerializedName("timestamp") var timestamp: Int? = null
9 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/mapbox/maps/testapp/model/IssPosition.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.testapp.model
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | data class IssPosition(
6 | @SerializedName("latitude") var latitude: Double? = null,
7 | @SerializedName("longitude") var longitude: Double? = null
8 | )
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/blue_round_nine.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-hdpi/blue_round_nine.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-hdpi/ic_clear.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/line_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/miami_beach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-hdpi/miami_beach.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/nps_picnic_area.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-hdpi/nps_picnic_area.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/nps_restrooms.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-hdpi/nps_restrooms.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/nps_trailhead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-hdpi/nps_trailhead.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/custom_compass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/custom_compass.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/ic_clear.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/iss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/iss.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/line_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/miami_beach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/miami_beach.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/pattern.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/southeast_radar_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/southeast_radar_0.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/southeast_radar_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/southeast_radar_1.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/southeast_radar_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/southeast_radar_2.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/southeast_radar_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-mdpi/southeast_radar_3.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xhdpi/ic_clear.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/line_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/miami_beach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xhdpi/miami_beach.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/fill_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxhdpi/fill_pattern.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxhdpi/ic_clear.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/line_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/miami_beach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxhdpi/miami_beach.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/pink_dot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxhdpi/pink_dot.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_car_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxxhdpi/ic_car_top.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxxhdpi/ic_clear.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_taxi_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxxhdpi/ic_taxi_top.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/line_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/mapbox_mylocation_icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxxhdpi/mapbox_mylocation_icon_default.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/miami_beach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable-xxxhdpi/miami_beach.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_dva_eta.xml:
--------------------------------------------------------------------------------
1 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_dva_parking.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_airplanemode_active_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_refresh_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_callout_item_background.xml:
--------------------------------------------------------------------------------
1 |
3 |
5 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_layers.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_layers_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_layers_clear.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_legacy_callout.xml:
--------------------------------------------------------------------------------
1 |
3 |
5 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_paint.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_swap_horiz_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_translate_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/mapbox_mylocation_bg_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/monochrome_lut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/drawable/monochrome_lut.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_add_marker_symbol.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_animated_imagesource.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_animated_marker.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_dds_moving_icon_with_trailing_line.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_heatmap_layer.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_icon_property.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_icon_size_change_on_click.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_image_source.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_javaservices_snaking_directions_route.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_location_component.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_location_component_animation.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_location_layer_basic_pulsing_circle.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_mapview.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_multiple_geometries.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_recycler.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_secondary_display_presentation.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_style_mapbox_studio.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_style_vector_source.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_surface.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_terrain_showcase.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_texture_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_wms_source.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/generated_test_logo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_gesture_alert.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_map.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_spinner_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_clip_layer.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_color_theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_custom_layer.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_tilejson.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_view_annotation.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/raw/moving_background_water.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/app/src/main/res/raw/moving_background_water.mp4
--------------------------------------------------------------------------------
/app/src/main/res/values/actions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Update layer (invalidate)
4 | Red
5 | Green
6 | Blue
7 | Map Synchronized
8 | Map Fixed Delay
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #4264fb
4 | #003ac7
5 | #EE4E8B
6 | #F9F9F9
7 | #ee4e8b
8 | #33c377
9 | #1E8CAB
10 | #f74e4e
11 | #334264fb
12 | #000000
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #000000
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/values/interpolators.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - FastOutSlowInInterpolator
5 | - CubicBezier [0, 0, 0.25, 1]
6 | - FastOutLinearInInterpolator
7 | - LinearOutSlowInInterpolator
8 | - BounceInterpolator
9 | - AnticipateInterpolator
10 | - AnticipateOvershootInterpolator
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/map_wallpaper.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | status:
3 | project:
4 | default:
5 | target: auto
6 | threshold: 1%
7 | comment:
8 | layout: "reach, diff, flags, files"
9 | behavior: default
10 | require_changes: true
11 |
12 |
--------------------------------------------------------------------------------
/compose-app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/compose-app/src/main/assets/dva-sf-construction.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "features": [
4 | {
5 | "type": "Feature",
6 | "id": "construction-1",
7 | "properties": {},
8 | "geometry": {
9 | "coordinates": [
10 | -122.41444169500868,
11 | 37.6344580806383
12 | ],
13 | "type": "Point"
14 | }
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/compose-app/src/main/assets/sportcar.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/assets/sportcar.glb
--------------------------------------------------------------------------------
/compose-app/src/main/java/com/mapbox/maps/compose/testapp/examples/utils/CityLocations.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.compose.testapp.examples.utils
2 |
3 | import com.mapbox.geojson.Point
4 |
5 | internal object CityLocations {
6 | val HELSINKI: Point = Point.fromLngLat(24.941526986277893, 60.17099952463323)
7 | val BERLIN = Point.fromLngLat(13.403, 52.562)
8 | val KYIV = Point.fromLngLat(30.498, 50.541)
9 | val WASHINGTON = Point.fromLngLat(-77.00897, 38.87031)
10 | val NULLISLAND = Point.fromLngLat(0.0, 0.0)
11 | }
12 |
13 | /**
14 | * Produce a new [Point] that offsets [offset] in both latitude and longitude.
15 | */
16 | internal fun Point.offset(offset: Double = 0.01) =
17 | Point.fromLngLat(longitude() + offset, latitude() + offset)
--------------------------------------------------------------------------------
/compose-app/src/main/java/com/mapbox/maps/compose/testapp/ui/theme/Color.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.compose.testapp.ui.theme
2 |
3 | import androidx.compose.ui.graphics.Color
4 |
5 | public val Purple200: Color = Color(0xFFBB86FC)
6 | public val Purple500: Color = Color(0xFF6200EE)
7 | public val Purple700: Color = Color(0xFF3700B3)
8 | public val Teal200: Color = Color(0xFF03DAC5)
--------------------------------------------------------------------------------
/compose-app/src/main/java/com/mapbox/maps/compose/testapp/ui/theme/Shape.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.compose.testapp.ui.theme
2 |
3 | import androidx.compose.foundation.shape.RoundedCornerShape
4 | import androidx.compose.material.Shapes
5 | import androidx.compose.ui.unit.dp
6 |
7 | public val Shapes: Shapes = Shapes(
8 | small = RoundedCornerShape(4.dp),
9 | medium = RoundedCornerShape(4.dp),
10 | large = RoundedCornerShape(0.dp)
11 | )
--------------------------------------------------------------------------------
/compose-app/src/main/java/com/mapbox/maps/compose/testapp/ui/theme/Type.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.compose.testapp.ui.theme
2 |
3 | import androidx.compose.material.Typography
4 | import androidx.compose.ui.text.TextStyle
5 | import androidx.compose.ui.text.font.FontFamily
6 | import androidx.compose.ui.text.font.FontWeight
7 | import androidx.compose.ui.unit.sp
8 |
9 | public val Typography: Typography = Typography(
10 | body1 = TextStyle(
11 | fontFamily = FontFamily.Default,
12 | fontWeight = FontWeight.Normal,
13 | fontSize = 16.sp
14 | )
15 | )
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/bg_dva_eta.xml:
--------------------------------------------------------------------------------
1 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/bg_dva_parking.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/miami_beach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/drawable/miami_beach.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/monochrome_lut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/drawable/monochrome_lut.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/southeast_radar_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/drawable/southeast_radar_0.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/southeast_radar_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/drawable/southeast_radar_1.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/southeast_radar_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/drawable/southeast_radar_2.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/drawable/southeast_radar_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/drawable/southeast_radar_3.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/compose-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/compose-app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFBB86FC
4 | #FF6200EE
5 | #FF3700B3
6 | #FF03DAC5
7 | #FF018786
8 | #FF000000
9 | #FFFFFFFF
10 |
--------------------------------------------------------------------------------
/compose-app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #000000
4 |
--------------------------------------------------------------------------------
/compose-app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Compose Mapbox Map Test App
3 |
--------------------------------------------------------------------------------
/extension-androidauto/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/extension-androidauto/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/MapSurfaceProvider.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.androidauto
2 |
3 | import android.content.Context
4 | import android.view.Surface
5 | import com.mapbox.maps.MapInitOptions
6 | import com.mapbox.maps.MapSurface
7 |
8 | /**
9 | * This provider is needed for creating unit tests.
10 | */
11 | internal object MapSurfaceProvider {
12 | fun create(
13 | context: Context,
14 | surface: Surface,
15 | mapInitOptions: MapInitOptions
16 | ) = MapSurface(context, surface, mapInitOptions)
17 | }
--------------------------------------------------------------------------------
/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/MapboxCarMapEx.kt:
--------------------------------------------------------------------------------
1 | @file:kotlin.jvm.JvmName("MapboxCarMapEx")
2 |
3 | package com.mapbox.maps.extension.androidauto
4 |
5 | import androidx.car.app.Screen
6 | import androidx.car.app.Session
7 | import com.mapbox.maps.MapboxExperimental
8 |
9 | /**
10 | * Shorthand extension for installing the map onto a [Session].
11 | */
12 | @MapboxExperimental
13 | fun Session.mapboxMapInstaller() = MapboxCarMapSessionInstaller(this)
14 |
15 | /**
16 | * Shorthand extension for installing an experience onto a [Screen].
17 | */
18 | @MapboxExperimental
19 | fun Screen.mapboxMapInstaller(mapboxCarMap: MapboxCarMap) =
20 | MapboxCarMapScreenInstaller(this, mapboxCarMap)
--------------------------------------------------------------------------------
/extension-androidauto/src/main/java/com/mapbox/maps/extension/androidauto/MapboxCarTelemetryEvents.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.androidauto
2 |
3 | import com.mapbox.maps.module.TelemetryEvent
4 |
5 | internal object MapboxCarTelemetryEvents {
6 | val map = TelemetryEvent.create("androidauto/map")
7 | }
--------------------------------------------------------------------------------
/extension-androidauto/src/test/java/com/mapbox/maps/extension/androidauto/testing/TestLifecycleOwner.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.androidauto.testing
2 |
3 | import androidx.lifecycle.Lifecycle
4 | import androidx.lifecycle.LifecycleOwner
5 | import androidx.lifecycle.LifecycleRegistry
6 |
7 | class TestLifecycleOwner : LifecycleOwner {
8 | private val lifecycleRegistry = LifecycleRegistry(this)
9 | .also { it.currentState = Lifecycle.State.INITIALIZED }
10 |
11 | override fun getLifecycle(): Lifecycle = lifecycleRegistry
12 |
13 | fun moveToState(state: Lifecycle.State) {
14 | lifecycleRegistry.currentState = state
15 | }
16 | }
--------------------------------------------------------------------------------
/extension-compose/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/extension-compose/src/androidTest/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Compose instrumentation app
3 |
--------------------------------------------------------------------------------
/extension-compose/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/extension-compose/src/main/java/com/mapbox/maps/extension/compose/MapboxMapScope.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.compose
2 |
3 | import androidx.compose.runtime.Immutable
4 |
5 | /**
6 | * A MapboxMapScope provides a scope for the children of MapboxMap.
7 | */
8 | @MapboxMapScopeMarker
9 | @Immutable
10 | public object MapboxMapScope {
11 | // Add needed extensions here
12 | }
--------------------------------------------------------------------------------
/extension-compose/src/main/java/com/mapbox/maps/extension/compose/MapboxMapScopeMarker.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.compose
2 |
3 | /**
4 | * Marks the scope of DSL used within [MapboxMap] composable function.
5 | */
6 | @DslMarker
7 | public annotation class MapboxMapScopeMarker
--------------------------------------------------------------------------------
/extension-compose/src/main/java/com/mapbox/maps/extension/compose/internal/ComposeTelemetryEvents.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.compose.internal
2 |
3 | import com.mapbox.maps.module.TelemetryEvent
4 |
5 | internal object ComposeTelemetryEvents {
6 | val map = TelemetryEvent.create("compose/map")
7 | }
--------------------------------------------------------------------------------
/extension-compose/src/main/java/com/mapbox/maps/extension/compose/style/internal/StyleAwareNode.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.compose.style.internal
2 |
3 | import com.mapbox.maps.extension.compose.internal.MapNode
4 |
5 | internal abstract class StyleAwareNode : MapNode() {
6 | abstract val mapStyleNode: MapStyleNode
7 | }
--------------------------------------------------------------------------------
/extension-compose/src/test/java/com/mapbox/maps/extension/compose/MapNodeExt.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.compose
2 |
3 | import com.mapbox.maps.extension.compose.internal.LayerPositionAwareNode
4 | import com.mapbox.maps.extension.compose.internal.MapNode
5 | import org.junit.Assert
6 |
7 | internal fun MapNode.assertLayerIds(expected: List) {
8 | Assert.assertEquals(
9 | expected,
10 | children.map { (it as LayerPositionAwareNode).getLayerIds()[0] }
11 | )
12 | }
--------------------------------------------------------------------------------
/extension-localization/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/extension-localization/api/Release/metalava.txt:
--------------------------------------------------------------------------------
1 | // Signature format: 3.0
2 | package com.mapbox.maps.extension.localization {
3 |
4 | public final class LocalizationKt {
5 | }
6 |
7 | public final class StyleInterfaceExtensionKt {
8 | method public static void localizeLabels(com.mapbox.maps.MapboxStyleManager, java.util.Locale locale, java.util.List? layerIds = null);
9 | method public static void localizeLabels(com.mapbox.maps.MapboxStyleManager, java.util.Locale locale);
10 | }
11 |
12 | public final class SupportedLanguagesKt {
13 | }
14 |
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/extension-localization/api/extension-localization.api:
--------------------------------------------------------------------------------
1 | public final class com/mapbox/maps/extension/localization/StyleInterfaceExtensionKt {
2 | public static final fun localizeLabels (Lcom/mapbox/maps/MapboxStyleManager;Ljava/util/Locale;)V
3 | public static final fun localizeLabels (Lcom/mapbox/maps/MapboxStyleManager;Ljava/util/Locale;Ljava/util/List;)V
4 | public static synthetic fun localizeLabels$default (Lcom/mapbox/maps/MapboxStyleManager;Ljava/util/Locale;Ljava/util/List;ILjava/lang/Object;)V
5 | }
6 |
7 |
--------------------------------------------------------------------------------
/extension-style-app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/extension-style-app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/extension-style-app/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/extension-style-lint-rules/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | lint-report.html
--------------------------------------------------------------------------------
/extension-style-lint-rules/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry:
--------------------------------------------------------------------------------
1 | com.mapbox.maps.lint.style.StyleIssueRegistry
--------------------------------------------------------------------------------
/extension-style/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/extension-style/src/main/java/com/mapbox/maps/extension/style/utils/StyleTelemetryEvents.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.style.utils
2 |
3 | import com.mapbox.maps.module.TelemetryEvent
4 |
5 | internal object StyleTelemetryEvents {
6 | val dsl = TelemetryEvent.create("style/dsl")
7 | }
--------------------------------------------------------------------------------
/extension-style/src/test/java/android/util/Log.java:
--------------------------------------------------------------------------------
1 | package android.util;
2 |
3 | public class Log {
4 | public static int d(String tag, String msg) {
5 | System.out.println("DEBUG: " + tag + ": " + msg);
6 | return 0;
7 | }
8 |
9 | public static int i(String tag, String msg) {
10 | System.out.println("INFO: " + tag + ": " + msg);
11 | return 0;
12 | }
13 |
14 | public static int w(String tag, String msg) {
15 | System.out.println("WARN: " + tag + ": " + msg);
16 | return 0;
17 | }
18 |
19 | public static int e(String tag, String msg) {
20 | System.out.println("ERROR: " + tag + ": " + msg);
21 | return 0;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/gradle/commonlibs.versions.toml:
--------------------------------------------------------------------------------
1 | [versions]
2 |
3 | # Mapbox NDK Gradle Plugin will read these versions to figure out what NDK versions are supported in
4 | # this codebase.
5 | defaultNdkMajor = "23"
6 | ndkMajor23 = "23.2.8568313"
7 | ndkMajor27 = "27.0.12077973"
--------------------------------------------------------------------------------
/gradle/ktlint.gradle:
--------------------------------------------------------------------------------
1 | configurations {
2 | ktlint
3 | }
4 |
5 | dependencies {
6 | ktlint "com.pinterest:ktlint:0.48.2"
7 | }
8 |
9 | task ktlint(type: JavaExec, group: "verification") {
10 | description = "Check Kotlin code style."
11 | classpath = configurations.ktlint
12 | main = "com.pinterest.ktlint.Main"
13 | args "src/**/*.kt", "!**/ksp/**/*.kt"
14 | }
15 |
16 | task ktlintFormat(type: JavaExec, group: "formatting") {
17 | description = "Fix Kotlin code style deviations."
18 | classpath = configurations.ktlint
19 | main = "com.pinterest.ktlint.Main"
20 | args "-F", "src/**/*.kt", "!**/ksp/**/*.kt"
21 | }
--------------------------------------------------------------------------------
/gradle/lint.gradle:
--------------------------------------------------------------------------------
1 | android {
2 | lintOptions {
3 | checkReleaseBuilds false
4 | warningsAsErrors true
5 | abortOnError false
6 | xmlReport false
7 | disable 'AllowBackup', 'UnusedResources'
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/gradle/pitest.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'pl.droidsonroids.pitest'
2 |
3 | pitest {
4 | pitestVersion = '1.7.6'
5 | avoidCallsTo = ['kotlin.jvm.internal']
6 | threads = Runtime.getRuntime().availableProcessors()
7 | outputFormats = ['XML', 'HTML']
8 | timestampedReports = false
9 | jvmArgs = ['-Xmx4096m']
10 | verbose = true
11 | exportLineCoverage = true
12 |
13 | // https://pitest.org/quickstart/mutators/
14 | mutators = ['DEFAULTS', 'CONSTRUCTOR_CALLS', 'EMPTY_RETURNS', 'FALSE_RETURNS',
15 | 'NULL_RETURNS', 'REMOVE_CONDITIONALS', 'REMOVE_INCREMENTS', 'EXPERIMENTAL_SWITCH']
16 |
17 | excludedClasses = []
18 |
19 | // Use feature EXPORT for debug
20 | // features = ["+EXPORT"]
21 | }
22 |
--------------------------------------------------------------------------------
/gradle/play-publisher.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.github.triplet.play'
2 |
3 | play {
4 | track = findProperty("releaseTrack") as String ?: "internal"
5 | serviceAccountCredentials = file("test-app-play-publisher.json")
6 | defaultToAppBundles = true
7 | }
--------------------------------------------------------------------------------
/gradle/script-git-version.gradle:
--------------------------------------------------------------------------------
1 | ext {
2 | // use unix time to set unique version code. Note: google playstore max version code value is 2100000000
3 | // this gives us expiration date till 2635.
4 | gitVersionCode = (System.currentTimeSeconds() / 10).intValue()
5 | }
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Sep 04 18:43:58 EEST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
7 |
--------------------------------------------------------------------------------
/mapbox-convention-plugin/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | dependencyResolutionManagement {
2 | versionCatalogs {
3 | create("libs") {
4 | from(files("$rootDir/../gradle/libs.versions.toml"))
5 | }
6 | }
7 | }
8 |
9 | rootProject.name = "MapboxConventionPlugin"
--------------------------------------------------------------------------------
/mapbox-convention-plugin/src/main/kotlin/com/mapbox/maps/gradle/plugins/internal/MapboxDependencies.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.gradle.plugins.internal
2 |
3 | internal object MapboxDependencies {
4 | internal val Common = VersionCatalogDependency(
5 | group = "com.mapbox.common",
6 | artifact = "common",
7 | versionRef = "mapboxCommon",
8 | supportsNdkVariant = true
9 | )
10 |
11 | internal val GlNative = VersionCatalogDependency(
12 | group = "com.mapbox.maps",
13 | // v11.9 snapshots or earlier should use `android-core-internal` as `artifact`.
14 | artifact = "android-core",
15 | versionRef = "mapboxGlNative",
16 | supportsNdkVariant = true
17 | )
18 | }
--------------------------------------------------------------------------------
/maps-sdk/README.md:
--------------------------------------------------------------------------------
1 | # The Mapbox Maps SDK Full for Android
2 |
3 | The Mapbox Maps SDK Full is a fully-featured version of the Mapbox Maps SDK for Android for those less concerned with binary size.
4 |
5 | The Maps SDK Full includes all functionality of the Maps SDK Lite, in addition to complex visualization layers and functionality such as heatmaps, data clustering, and full support for Expressions.
6 |
--------------------------------------------------------------------------------
/maps-sdk/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | -keep class com.google.gson.** {*;}
2 | -keep class com.mapbox.geojson.** {*;}
3 | -keep class com.mapbox.bindgen.** {*;}
4 | -keep class !com.mapbox.maps.extension.**,!com.mapbox.maps.plugin.**,com.mapbox.maps.** {*;}
5 | -keep class com.mapbox.mapboxsdk.log.** {*;}
6 | -keep class com.mapbox.common.** {*;}
7 | -keep class com.mapbox.mapboxsdk.text.** {*;}
--------------------------------------------------------------------------------
/maps-sdk/src/androidTest/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
14 |
15 |
--------------------------------------------------------------------------------
/maps-sdk/src/androidTest/java/com/mapbox/maps/EmptyActivity.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | import android.os.Bundle
4 | import android.view.ViewGroup
5 | import android.widget.FrameLayout
6 | import androidx.appcompat.app.AppCompatActivity
7 |
8 | class EmptyActivity : AppCompatActivity() {
9 |
10 | lateinit var frameLayout: FrameLayout
11 |
12 | override fun onCreate(savedInstanceState: Bundle?) {
13 | super.onCreate(savedInstanceState)
14 | frameLayout = FrameLayout(this)
15 | frameLayout.layoutParams = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
16 | setContentView(frameLayout)
17 | }
18 | }
--------------------------------------------------------------------------------
/maps-sdk/src/androidTest/res/layout/view_annotation.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
--------------------------------------------------------------------------------
/maps-sdk/src/androidTest/res/layout/view_annotation_wrap_content.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
--------------------------------------------------------------------------------
/maps-sdk/src/androidTest/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | SDK instrumentation app
3 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/DelegatingMapClient.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | internal interface DelegatingMapClient : MapClient
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/SnapshotOverlayCallback.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | /**
4 | * A block which can be used to obtain a [SnapshotOverlay] to draw custom content directly over the snapshot image.
5 | */
6 | fun interface SnapshotOverlayCallback {
7 |
8 | /**
9 | * Invoked when snapshot overlay has been prepared.
10 | */
11 | fun onSnapshotOverlay(overlay: SnapshotOverlay)
12 | }
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/SnapshotOverlayOptions.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | /**
4 | * Data class to config the overlays on the snapshotter
5 | *
6 | * @param showLogo whether show Mapbox logo on the taken snapshot
7 | * @param showAttributes whether show attribution on the taken snapshot
8 | */
9 |
10 | data class SnapshotOverlayOptions @JvmOverloads constructor(
11 | val showLogo: Boolean = true,
12 | val showAttributes: Boolean = true
13 | )
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/SnapshotResultCallback.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | import android.graphics.Bitmap
4 |
5 | /**
6 | * Callback invoked when obtaining the map snapshot.
7 | */
8 | fun interface SnapshotResultCallback {
9 |
10 | /**
11 | * If snapshot was successful - [snapshot] will contain the actual [Bitmap] with an actual map snapshot result.
12 | * If snapshot was not successful - [snapshot] will be NULL and [errorMessage] will contain the error message.
13 | */
14 | fun onSnapshotResult(snapshot: Bitmap?, errorMessage: String?)
15 | }
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/SnapshotterDestroyedException.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | /**
4 | * Runtime exception thrown when the [Snapshotter] has already been destroyed.
5 | */
6 | class SnapshotterDestroyedException : IllegalStateException("This snapshotter was already destroyed.")
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/attribution/AttributionLayout.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.attribution
2 |
3 | import android.graphics.Bitmap
4 | import android.graphics.PointF
5 |
6 | /**
7 | * Class representing attribution properties.
8 | */
9 | data class AttributionLayout(
10 | /**
11 | * [Bitmap] logo.
12 | */
13 | val logo: Bitmap?,
14 | /**
15 | * [x, y] anchor point for placing the logo on the screen.
16 | */
17 | val anchorPoint: PointF?,
18 | /**
19 | * If set to `true` shorter text version will be used.
20 | */
21 | val isShortText: Boolean
22 | )
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/plugin/InvalidViewPluginHostException.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin
2 |
3 | /**
4 | * Exception thrown when a [ViewPlugin] is loaded in a context that doesn't have a view hierarchy associated.
5 | * @param message The exception message
6 | */
7 | class InvalidViewPluginHostException(message: String) : Exception(message)
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/renderer/OnFpsChangedListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.renderer
2 |
3 | import com.mapbox.maps.MapView
4 |
5 | /**
6 | * Interface definition for a callback to be invoked when a frame is rendered to the map view.
7 | * Important note: [onFpsChanged] is called on non-UI thread.
8 | *
9 | * @see [MapView.setOnFpsChangedListener]
10 | */
11 | fun interface OnFpsChangedListener {
12 | /**
13 | * Called on non-UI thread for every frame rendered to the map view.
14 | *
15 | * @param fps The average number of frames rendered over the last second.
16 | */
17 | @RenderThread
18 | fun onFpsChanged(fps: Double)
19 | }
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/renderer/RenderThread.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.renderer
2 |
3 | /**
4 | * Denotes that the annotated method should only be called on a Mapbox render thread.
5 | * If the annotated element is a class, then all methods in the class should be called
6 | * on a Mapbox render thread.
7 | */
8 | @MustBeDocumented
9 | @Retention(AnnotationRetention.SOURCE)
10 | @Target(
11 | AnnotationTarget.FUNCTION,
12 | AnnotationTarget.PROPERTY_GETTER,
13 | AnnotationTarget.PROPERTY_SETTER,
14 | AnnotationTarget.CONSTRUCTOR,
15 | AnnotationTarget.CLASS,
16 | )
17 | annotation class RenderThread
--------------------------------------------------------------------------------
/maps-sdk/src/main/java/com/mapbox/maps/viewannotation/ViewAnnotationVisibility.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.viewannotation
2 |
3 | internal enum class ViewAnnotationVisibility {
4 | /**
5 | * Initial state, track it separately for several corner cases.
6 | */
7 | INITIAL,
8 |
9 | /**
10 | * View is set to be visible based on Android view visibility obtained from OnGlobalLayoutListener
11 | * but view will actually be positioned later based on [VISIBLE_AND_POSITIONED].
12 | */
13 | VISIBLE_AND_NOT_POSITIONED,
14 |
15 | /**
16 | * View is totally visible for the user.
17 | */
18 | VISIBLE_AND_POSITIONED,
19 |
20 | /**
21 | * View is either removed from layout or not visible.
22 | */
23 | INVISIBLE,
24 | }
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-hdpi/mapbox_logo_helmet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-hdpi/mapbox_logo_helmet.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-hdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-hdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-mdpi/mapbox_logo_helmet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-mdpi/mapbox_logo_helmet.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-mdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-mdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-xhdpi/mapbox_logo_helmet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-xhdpi/mapbox_logo_helmet.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-xhdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-xhdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-xxhdpi/mapbox_logo_helmet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-xxhdpi/mapbox_logo_helmet.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-xxhdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-xxhdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-xxxhdpi/mapbox_logo_helmet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-xxxhdpi/mapbox_logo_helmet.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable-xxxhdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable-xxxhdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable/mapbox_logo_helmet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable/mapbox_logo_helmet.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/maps-sdk/src/main/res/drawable/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/drawable/mapbox_rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | تحسين هذه الخريطة
3 | Mapbox القياس عن بعد
4 | سياسة خصوصية Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-be/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Палепшыць карту
3 | Mapbox Тэлеметрыя
4 | Палітыка прыватнасці Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-bg/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Подобрете тази карта
3 | Телеметрия на Mapbox
4 | Правила за поверителност на Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-ca/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Millora aquest mapa
3 | Telemetria de Mapbox
4 | Política de privadesa de Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-cs/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Vylepšete tuto mapu
3 | Telemetrie Mapboxu
4 | Zásady ochrany osobních údajů Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-da/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Forbedre dette kort
3 | Mapbox Telemetri
4 | Mapbox Privatlivspolitik
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Verbessere diese Karte
3 | Mapbox-Telemetrie
4 | Mapbox-Datenschutzrichtlinie
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mejorar este mapa
3 | Telemetría de Mapbox
4 | Política de privacidad de Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Améliorer cette carte
3 | Télémétrie Mapbox
4 | Politique de confidentialité de Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-gl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mellora este mapa
3 | Telemetría Mapbox
4 | Política de privacidade de Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Migliora questa mappa
3 | Telemetria Mapbox
4 | Informativa sulla privacy di Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-iw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | שפר את המפה הזו
3 | Mapbox Telemetry
4 | מדיניות הפרטיות של Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | この地図を改善してください
3 | マップボックス テレメトリ
4 | マップボックスのプライバシーポリシー
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 이 지도를 개선하세요
3 | Mapbox 원격 측정
4 | Mapbox 개인정보 보호정책
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-lt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Patobulinkite šį žemėlapį
3 | „Mapbox“ telemetrija
4 | „Mapbox“ privatumo politika
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-nl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Verbeter deze kaart
3 | Mapbox-telemetrie
4 | Mapbox-privacybeleid
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-no/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Forbedre dette kartet
3 | Mapbox Telemetri
4 | Mapbox personvernerklæring
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popraw tę mapę
3 | Telemetria Mapboxa
4 | Polityka prywatności Mapboxa
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-pt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Melhore este mapa
3 | Telemetria Mapbox
4 | Política de Privacidade da Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-ru/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Улучшить карту
3 | Mapbox Телеметрия
4 | Политика конфиденциальности Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-sv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Förbättra den här kartan
3 | Mapbox Telemetri
4 | Mapbox sekretesspolicy
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-uk/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Поліпшити картку
3 | Mapbox Телеметрія
4 | Політика конфіденційності Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cải thiện bản đồ này
3 | Đo từ xa Mapbox
4 | Chính sách quyền riêng tư của Mapbox
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 完善地图
3 | Telemetry设置
4 | Mapbox隐私政策
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-zh-rHK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 完善地圖
3 | Telemetry設置
4 | Mapbox隱私權政策
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 完善地圖
3 | Telemetry設置
4 | Mapbox隱私權政策
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 改进这张地图
3 | Mapbox 遥测
4 | Mapbox 隐私政策
5 |
6 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #5F5F5F
4 | #7D7F80
5 | #1E8CAB
6 |
7 | #4A90E2
8 | #A1B0C0
9 |
10 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/maps-sdk/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Improve This Map
3 | Mapbox Telemetry
4 | Mapbox Privacy Policy
5 | Mapbox Geofencing
6 |
7 |
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/ShadowCameraManager.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps;
2 |
3 |
4 | import org.robolectric.annotation.*;
5 |
6 | @Implements(CameraManager.class)
7 | public class ShadowCameraManager {
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/ShadowMap.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps;
2 |
3 | import org.robolectric.annotation.Implements;
4 |
5 | @Implements(Map.class)
6 | public class ShadowMap {
7 | }
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/ShadowMapRecorder.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps;
2 |
3 | import org.robolectric.annotation.Implements;
4 |
5 | @Implements(MapRecorder.class)
6 | public class ShadowMapRecorder {
7 | }
8 |
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/ShadowMapSnapshotter.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps;
2 |
3 | import androidx.annotation.*;
4 |
5 | import com.mapbox.maps.*;
6 |
7 | import org.robolectric.annotation.*;
8 |
9 | @Implements(MapSnapshotter.class)
10 | public class ShadowMapSnapshotter {
11 |
12 | @Implementation
13 | public void setStyleJson(){
14 |
15 | }
16 |
17 | @Implementation
18 | public void setCamera(@NonNull CameraOptions cameraOptions){
19 |
20 | }
21 | }
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/ShadowStyleManager.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps;
2 |
3 |
4 | import org.robolectric.annotation.*;
5 |
6 | @Implements(StyleManager.class)
7 | public class ShadowStyleManager {
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/ShadowTracing.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | import org.robolectric.annotation.Implements
4 |
5 | @Implements(Tracing::class)
6 | class ShadowTracing {
7 |
8 | companion object {
9 | fun setTracingBackendType(type: TracingBackendType) {
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/shadows/ShadowCancelable.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.shadows;
2 |
3 |
4 | import com.mapbox.common.Cancelable;
5 | import org.robolectric.annotation.Implementation;
6 | import org.robolectric.annotation.Implements;
7 |
8 | @Implements(Cancelable.class)
9 | public class ShadowCancelable {
10 | @Implementation
11 | public void cancel() {
12 |
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/shadows/ShadowMapsResourceOptions.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.shadows;
2 |
3 | import com.mapbox.maps.MapsResourceOptions;
4 |
5 | import org.robolectric.annotation.Implements;
6 |
7 | @Implements(MapsResourceOptions.class)
8 | public class ShadowMapsResourceOptions {
9 | }
--------------------------------------------------------------------------------
/maps-sdk/src/test/java/com/mapbox/maps/shadows/ShadowObservable.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.shadows;
2 |
3 | import com.mapbox.maps.*;
4 |
5 | import org.robolectric.annotation.*;
6 |
7 | @Implements(Observable.class)
8 | public class ShadowObservable {
9 | }
--------------------------------------------------------------------------------
/maps-sdk/src/test/resources/robolectric.properties:
--------------------------------------------------------------------------------
1 | sdk=28
--------------------------------------------------------------------------------
/metalava/metalava.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/metalava/metalava.jar
--------------------------------------------------------------------------------
/module-telemetry/api/Release/metalava.txt:
--------------------------------------------------------------------------------
1 | // Signature format: 3.0
2 | package com.mapbox.maps.module.telemetry {
3 |
4 | @com.mapbox.annotation.module.MapboxModule(type=com.mapbox.annotation.module.MapboxModuleType.MapTelemetry) public final class MapTelemetryImpl implements com.mapbox.maps.module.MapTelemetry {
5 | ctor public MapTelemetryImpl(android.content.Context appContext);
6 | method public void disableTelemetrySession();
7 | method public void onAppUserTurnstileEvent();
8 | method public void onPerformanceEvent(android.os.Bundle? data);
9 | method public void setUserTelemetryRequestState(boolean enabled);
10 | }
11 |
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/module-telemetry/api/module-telemetry.api:
--------------------------------------------------------------------------------
1 | public final class com/mapbox/maps/module/telemetry/MapTelemetryImpl : com/mapbox/maps/module/MapTelemetry {
2 | public fun (Landroid/content/Context;)V
3 | public fun disableTelemetrySession ()V
4 | public fun onAppUserTurnstileEvent ()V
5 | public fun onPerformanceEvent (Landroid/os/Bundle;)V
6 | public fun setUserTelemetryRequestState (Z)V
7 | }
8 |
9 | public final class com/mapbox/module/Mapbox_MapTelemetryModuleConfiguration {
10 | public static final field INSTANCE Lcom/mapbox/module/Mapbox_MapTelemetryModuleConfiguration;
11 | public static final fun getEnableConfiguration ()Z
12 | public static final fun getImplClass ()Ljava/lang/Class;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/module-telemetry/src/main/java/com/mapbox/maps/module/telemetry/MapBaseEvent.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.module.telemetry
2 |
3 | import android.annotation.SuppressLint
4 | import com.google.gson.annotations.SerializedName
5 |
6 | /**
7 | * Base event class for telemetry events.
8 | */
9 | @SuppressLint("ParcelCreator")
10 | internal abstract class MapBaseEvent(phoneState: PhoneState) {
11 | @SerializedName("event")
12 | val event: String
13 |
14 | @SerializedName("created")
15 | val created: String
16 |
17 | init {
18 | event = this.getEventName()
19 | created = phoneState.created
20 | }
21 |
22 | abstract fun getEventName(): String
23 | }
--------------------------------------------------------------------------------
/module-telemetry/src/main/java/com/mapbox/maps/module/telemetry/MapEventFactory.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.module.telemetry
2 |
3 | import android.os.Bundle
4 | import com.mapbox.common.TelemetrySystemUtils
5 |
6 | internal object MapEventFactory {
7 | fun buildMapLoadEvent(phoneState: PhoneState): MapLoadEvent {
8 | val userId = TelemetrySystemUtils.obtainUniversalUniqueIdentifier()
9 | return MapLoadEvent(userId, phoneState)
10 | }
11 |
12 | fun buildPerformanceEvent(
13 | phoneState: PhoneState,
14 | sessionId: String,
15 | data: Bundle
16 | ): PerformanceEvent {
17 | return PerformanceEvent(phoneState, sessionId, data)
18 | }
19 | }
--------------------------------------------------------------------------------
/plugin-animation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/plugin-animation/src/main/java/com/mapbox/maps/plugin/animation/HighLevelAnimatorSet.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.animation
2 |
3 | import android.animation.AnimatorSet
4 | import com.mapbox.common.Cancelable
5 | import com.mapbox.maps.MapboxExperimental
6 | import com.mapbox.maps.threading.AnimationThreadController
7 |
8 | internal data class HighLevelAnimatorSet(
9 | val owner: String?,
10 | val animatorSet: AnimatorSet
11 | ) : Cancelable {
12 |
13 | @OptIn(MapboxExperimental::class)
14 | override fun cancel() {
15 | AnimationThreadController.postOnAnimatorThread {
16 | animatorSet.cancel()
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/plugin-animation/src/test/resources/robolectric.properties:
--------------------------------------------------------------------------------
1 | sdk=28
--------------------------------------------------------------------------------
/plugin-annotation/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/plugin-annotation/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-annotation/consumer-rules.pro
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/QueryAnnotationCallback.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.annotation
2 |
3 | /**
4 | * Callback for query annotation
5 | */
6 | fun interface QueryAnnotationCallback {
7 | /**
8 | * Get the queried annotation
9 | */
10 | fun onQueryAnnotation(annotations: T)
11 | }
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnCircleAnnotationClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a circleAnnotation has been clicked.
9 | */
10 | fun interface OnCircleAnnotationClickListener : OnAnnotationClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnCircleAnnotationDragListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationDragListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a circleAnnotation is dragged.
9 | */
10 | interface OnCircleAnnotationDragListener : OnAnnotationDragListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnCircleAnnotationInteractionListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationInteractionListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a circleAnnotation has been selected or deselected.
9 | */
10 | interface OnCircleAnnotationInteractionListener : OnAnnotationInteractionListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnCircleAnnotationLongClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationLongClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a circleAnnotation has been long clicked.
9 | */
10 | fun interface OnCircleAnnotationLongClickListener : OnAnnotationLongClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPointAnnotationClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a pointAnnotation has been clicked.
9 | */
10 | fun interface OnPointAnnotationClickListener : OnAnnotationClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPointAnnotationDragListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationDragListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a pointAnnotation is dragged.
9 | */
10 | interface OnPointAnnotationDragListener : OnAnnotationDragListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPointAnnotationInteractionListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationInteractionListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a pointAnnotation has been selected or deselected.
9 | */
10 | interface OnPointAnnotationInteractionListener : OnAnnotationInteractionListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPointAnnotationLongClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationLongClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a pointAnnotation has been long clicked.
9 | */
10 | fun interface OnPointAnnotationLongClickListener : OnAnnotationLongClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolygonAnnotationClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polygonAnnotation has been clicked.
9 | */
10 | fun interface OnPolygonAnnotationClickListener : OnAnnotationClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolygonAnnotationDragListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationDragListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polygonAnnotation is dragged.
9 | */
10 | interface OnPolygonAnnotationDragListener : OnAnnotationDragListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolygonAnnotationInteractionListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationInteractionListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polygonAnnotation has been selected or deselected.
9 | */
10 | interface OnPolygonAnnotationInteractionListener : OnAnnotationInteractionListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolygonAnnotationLongClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationLongClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polygonAnnotation has been long clicked.
9 | */
10 | fun interface OnPolygonAnnotationLongClickListener : OnAnnotationLongClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolylineAnnotationClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polylineAnnotation has been clicked.
9 | */
10 | fun interface OnPolylineAnnotationClickListener : OnAnnotationClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolylineAnnotationDragListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationDragListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polylineAnnotation is dragged.
9 | */
10 | interface OnPolylineAnnotationDragListener : OnAnnotationDragListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolylineAnnotationInteractionListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationInteractionListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polylineAnnotation has been selected or deselected.
9 | */
10 | interface OnPolylineAnnotationInteractionListener : OnAnnotationInteractionListener
--------------------------------------------------------------------------------
/plugin-annotation/src/main/java/com/mapbox/maps/plugin/annotation/generated/OnPolylineAnnotationLongClickListener.kt:
--------------------------------------------------------------------------------
1 | // This file is generated.
2 |
3 | package com.mapbox.maps.plugin.annotation.generated
4 |
5 | import com.mapbox.maps.plugin.annotation.OnAnnotationLongClickListener
6 |
7 | /**
8 | * Interface definition for a callback to be invoked when a polylineAnnotation has been long clicked.
9 | */
10 | fun interface OnPolylineAnnotationLongClickListener : OnAnnotationLongClickListener
--------------------------------------------------------------------------------
/plugin-annotation/src/test/resources/robolectric.properties:
--------------------------------------------------------------------------------
1 | sdk=28
--------------------------------------------------------------------------------
/plugin-attribution/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/plugin-attribution/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-attribution/consumer-rules.pro
--------------------------------------------------------------------------------
/plugin-attribution/src/main/res/drawable/mapbox_attribution_default.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/plugin-attribution/src/main/res/drawable/mapbox_attribution_selected.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/plugin-attribution/src/main/res/drawable/mapbox_attribution_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/plugin-attribution/src/main/res/layout/mapbox_attribution_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/plugin-attribution/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #1E8CAB
4 |
--------------------------------------------------------------------------------
/plugin-attribution/src/test/resources/robolectric.properties:
--------------------------------------------------------------------------------
1 | sdk=28
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/drawable-hdpi/mapbox_compass_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-compass/src/main/res/drawable-hdpi/mapbox_compass_icon.png
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/drawable-mdpi/mapbox_compass_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-compass/src/main/res/drawable-mdpi/mapbox_compass_icon.png
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/drawable-xhdpi/mapbox_compass_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-compass/src/main/res/drawable-xhdpi/mapbox_compass_icon.png
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/drawable-xxhdpi/mapbox_compass_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-compass/src/main/res/drawable-xxhdpi/mapbox_compass_icon.png
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/drawable-xxxhdpi/mapbox_compass_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-compass/src/main/res/drawable-xxxhdpi/mapbox_compass_icon.png
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/drawable/mapbox_compass_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-compass/src/main/res/drawable/mapbox_compass_icon.png
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | بوصلة الخريطة. قم بالتنشيط لإعادة ضبط دوران الخريطة إلى الشمال.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-be/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Компас. Актывуйце, каб разгарнуць карту на поўнач.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-bg/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Компас на картата. Активирайте, за да нулирате завъртането на картата на север.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-ca/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Brúixola del mapa. Activeu-lo per restablir la rotació del mapa al nord.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-cs/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mapový kompas. Aktivací obnovíte otočení mapy na sever.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-da/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Kort kompas. Aktiver for at nulstille kortrotationen til nord.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Kartenkompass. Aktivieren Sie diese Option, um die Kartendrehung auf Norden zurückzusetzen.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Brújula del mapa. Actívelo para restablecer la rotación del mapa hacia el norte.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Boussole cartographique. Activez pour réinitialiser la rotation de la carte vers le Nord.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-gl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Compás do mapa. Active para restablecer a rotación do mapa ao norte.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Bussola della mappa. Attiva per reimpostare la rotazione della mappa verso Nord.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-iw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | מצפן מפה. הפעל כדי לאפס את סיבוב המפה לצפון.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 地図コンパス。有効にすると、マップの回転が北にリセットされます。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 지도 나침반. 지도 회전을 북쪽으로 재설정하려면 활성화하세요.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-lt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Žemėlapio kompasas. Suaktyvinkite, kad iš naujo nustatytumėte žemėlapio pasukimą į šiaurę.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-nl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Kaart kompas. Activeer om de kaartrotatie naar het noorden te resetten.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-no/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Kart kompass. Aktiver for å tilbakestille kartrotasjonen til nord.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mapa kompasu. Aktywuj, aby zresetować obrót mapy na północ.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-pt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Bússola do mapa. Ative para redefinir a rotação do mapa para Norte.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-ru/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Компас. Активируйте, чтобы развернуть карту на север.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-sv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Karta kompass. Aktivera för att återställa kartrotationen till norr.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-uk/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Компас. Активуйте, щоб скинути обертання карти на північ.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | La bàn bản đồ. Kích hoạt để đặt lại vòng xoay bản đồ về hướng Bắc.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 地图指南针。激活可将地图旋转重置为北。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-zh-rHK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 地圖指南針。啟動可將地圖旋轉重置為北。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 地圖指南針。啟動可將地圖旋轉重置為北。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 地图指南针。激活可将地图旋转重置为北。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 48dp
4 |
--------------------------------------------------------------------------------
/plugin-compass/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Map compass. Activate to reset the map rotation to North.
4 |
5 |
--------------------------------------------------------------------------------
/plugin-gestures/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/plugin-gestures/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/plugin-gestures/src/test/resources/robolectric.properties:
--------------------------------------------------------------------------------
1 | sdk=28
--------------------------------------------------------------------------------
/plugin-lifecycle-lint-rules/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | lint-report.html
--------------------------------------------------------------------------------
/plugin-lifecycle-lint-rules/src/main/java/com/mapbox/maps/lint/lifecycle/LifecycleIssueRegistry.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.lint.lifecycle
2 |
3 | import com.android.tools.lint.client.api.IssueRegistry
4 | import com.android.tools.lint.client.api.Vendor
5 |
6 | class LifecycleIssueRegistry : IssueRegistry() {
7 |
8 | override val issues = listOf(LifecycleMethodDetector.ISSUE)
9 |
10 | override val api: Int = com.android.tools.lint.detector.api.CURRENT_API
11 |
12 | override val vendor = Vendor(
13 | vendorName = "Mapbox",
14 | identifier = "com.mapbox.maps:lifecycle-lint",
15 | feedbackUrl = "https://github.com/mapbox/mapbox-maps-android/issues",
16 | contact = "https://github.com/mapbox/mapbox-maps-android"
17 | )
18 | }
--------------------------------------------------------------------------------
/plugin-lifecycle-lint-rules/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry:
--------------------------------------------------------------------------------
1 | com.mapbox.maps.lint.lifecycle.LifecycleIssueRegistry
--------------------------------------------------------------------------------
/plugin-lifecycle/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/plugin-lifecycle/api/Release/metalava.txt:
--------------------------------------------------------------------------------
1 | // Signature format: 3.0
2 | package com.mapbox.maps.plugin.lifecycle {
3 |
4 | public final class LifecycleUtils {
5 | method public static com.mapbox.maps.plugin.lifecycle.MapboxLifecyclePlugin getLifecycle(com.mapbox.maps.plugin.delegates.MapPluginProviderDelegate);
6 | }
7 |
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/plugin-lifecycle/api/plugin-lifecycle.api:
--------------------------------------------------------------------------------
1 | public final class com/mapbox/maps/plugin/lifecycle/LifecycleUtils {
2 | public static final synthetic fun createLifecyclePlugin ()Lcom/mapbox/maps/plugin/lifecycle/MapboxLifecyclePlugin;
3 | public static final fun getLifecycle (Lcom/mapbox/maps/plugin/delegates/MapPluginProviderDelegate;)Lcom/mapbox/maps/plugin/lifecycle/MapboxLifecyclePlugin;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/LocationCompassCalibrationListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.locationcomponent
2 |
3 | /**
4 | * Callback to receive compass calibration events
5 | */
6 | fun interface LocationCompassCalibrationListener {
7 | /**
8 | * Callback's invoked when compass needs to be calibrated.
9 | */
10 | fun onCompassCalibrationNeeded()
11 | }
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/animators/PuckPositionAnimator.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.locationcomponent.animators
2 |
3 | import androidx.annotation.RestrictTo
4 | import com.mapbox.geojson.Point
5 | import com.mapbox.maps.plugin.locationcomponent.OnIndicatorPositionChangedListener
6 |
7 | @RestrictTo(RestrictTo.Scope.LIBRARY)
8 | internal class PuckPositionAnimator(private val indicatorPositionChangedListener: OnIndicatorPositionChangedListener) : PuckAnimator(Evaluators.POINT) {
9 |
10 | override fun updateLayer(fraction: Float, value: Point) {
11 | locationRenderer?.setLatLng(value)
12 | indicatorPositionChangedListener.onIndicatorPositionChanged(value)
13 | }
14 | }
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/java/com/mapbox/maps/plugin/locationcomponent/utils/ExpectedUtils.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.locationcomponent.utils
2 |
3 | import com.mapbox.bindgen.Expected
4 | import com.mapbox.maps.MapboxLocationComponentException
5 |
6 | /**
7 | * Internal function to check if a method invoke on Value succeeded, throws exception if not.
8 | */
9 | @JvmSynthetic
10 | internal inline fun Expected.take(): T {
11 | this.also {
12 | it.error?.let { err ->
13 | throw MapboxLocationComponentException(err)
14 | }
15 | it.value?.let { v ->
16 | return v
17 | }
18 | }
19 | throw MapboxLocationComponentException("Error in parsing expression.")
20 | }
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-hdpi/mapbox_mylocation_icon_bearing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-hdpi/mapbox_mylocation_icon_bearing.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-hdpi/mapbox_mylocation_icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-hdpi/mapbox_mylocation_icon_default.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-mdpi/mapbox_mylocation_icon_bearing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-mdpi/mapbox_mylocation_icon_bearing.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-mdpi/mapbox_mylocation_icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-mdpi/mapbox_mylocation_icon_default.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-xhdpi/mapbox_mylocation_icon_bearing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-xhdpi/mapbox_mylocation_icon_bearing.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-xhdpi/mapbox_mylocation_icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-xhdpi/mapbox_mylocation_icon_default.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-xxhdpi/mapbox_mylocation_icon_bearing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-xxhdpi/mapbox_mylocation_icon_bearing.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-xxhdpi/mapbox_mylocation_icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-xxhdpi/mapbox_mylocation_icon_default.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-xxxhdpi/mapbox_mylocation_icon_bearing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-xxxhdpi/mapbox_mylocation_icon_bearing.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable-xxxhdpi/mapbox_mylocation_icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable-xxxhdpi/mapbox_mylocation_icon_default.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_info_bg_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_info_icon_default.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_info_icon_selected.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_mylocation_bg_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_mylocation_icon_bearing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable/mapbox_mylocation_icon_bearing.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_mylocation_icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-locationcomponent/src/main/res/drawable/mapbox_mylocation_icon_default.png
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_popup_window_transparent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
12 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_user_bearing_icon.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_user_icon.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_user_icon_shadow.xml:
--------------------------------------------------------------------------------
1 |
4 | -
6 |
8 |
11 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_user_icon_stale.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/drawable/mapbox_user_stroke_icon.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #5F5F5F
4 | #7D7F80
5 | #1E8CAB
6 |
7 | #0590E2
8 | #A1B0C0
9 |
10 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 18dp
4 | 25dp
5 | 400dp
6 |
7 |
--------------------------------------------------------------------------------
/plugin-locationcomponent/src/test/java/com/mapbox/maps/util/MockKExtensions.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.util
2 |
3 | import io.mockk.MockKMatcherScope
4 |
5 | // vararg capture isn't implemented, here's a workaround to collect it https://github.com/mockk/mockk/issues/432
6 | inline fun MockKMatcherScope.captureVararg(
7 | capture: MutableCollection
8 | ) = varargAll {
9 | capture.add(it)
10 | true
11 | }
--------------------------------------------------------------------------------
/plugin-logo/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/drawable-hdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-logo/src/main/res/drawable-hdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/drawable-mdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-logo/src/main/res/drawable-mdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/drawable-xhdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-logo/src/main/res/drawable-xhdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/drawable-xxhdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-logo/src/main/res/drawable-xxhdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/drawable-xxxhdpi/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-logo/src/main/res/drawable-xxxhdpi/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/drawable/mapbox_logo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mapbox/mapbox-maps-android/a3eb625ccdc78b328e0aa39b44bc6959ec8a62ed/plugin-logo/src/main/res/drawable/mapbox_logo_icon.png
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | يجب أن تظل العلامة النصية لشعار Mapbox ممكنة وفقًا لشروط الخدمة الخاصة بنا. راجع https://www.mapbox.com/legal/tos لمزيد من التفاصيل.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-be/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Лагатып Mapbox павінен заставацца бачным у адпаведнасці з нашымі Ўмовамі абслугоўвання. Дадатковая інфармацыя: https://www.mapbox.com/legal/tos.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-bg/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Словната марка на логото на Mapbox трябва да остане активирана в съответствие с нашите Условия за ползване. Вижте https://www.mapbox.com/legal/tos за повече подробности.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-ca/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | El logotip de Mapbox ha de romandre activat d\'acord amb les nostres Condicions del servei. Consulteu https://www.mapbox.com/legal/tos per obtenir més informació.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-cs/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Slovní znak loga Mapbox musí zůstat aktivní v souladu s našimi smluvními podmínkami. Další podrobnosti najdete na https://www.mapbox.com/legal/tos.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-da/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mapbox-logoets ordmærke skal forblive aktiveret i overensstemmelse med vores servicevilkår. Se https://www.mapbox.com/legal/tos for flere detaljer.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Die Mapbox-Logo-Wortmarke muss gemäß unseren Nutzungsbedingungen aktiviert bleiben. Weitere Informationen finden Sie unter https://www.mapbox.com/legal/tos.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | El logotipo de Mapbox debe permanecer habilitado de acuerdo con nuestros Términos de servicio. Consulte https://www.mapbox.com/legal/tos para obtener más detalles.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Le logo du logo Mapbox doit rester activé conformément à nos conditions d\'utilisation. Voir https://www.mapbox.com/legal/tos pour plus de détails.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-gl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | O logotipo de Mapbox debe permanecer activado de acordo coas nosas Condicións de servizo. Consulte https://www.mapbox.com/legal/tos para obter máis detalles.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Il marchio denominativo del logo Mapbox deve rimanere abilitato in conformità con i nostri Termini di servizio. Vedi https://www.mapbox.com/legal/tos per maggiori dettagli.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-iw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | סימן המילים הלוגו של Mapbox חייב להישאר מופעל בהתאם לתנאים וההגבלות שלנו. ראה https://www.mapbox.com/legal/tos לפרטים נוספים.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mapbox ロゴのワードマークは、サービス利用規約に従って有効にしておく必要があります。詳細については、https://www.mapbox.com/legal/tos を参照してください。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mapbox 로고 워드마크는 서비스 약관에 따라 활성화된 상태로 유지되어야 합니다. 자세한 내용은 https://www.mapbox.com/legal/tos를 참조하세요.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-lt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Žodis „Mapbox“ logotipas turi likti įjungtas pagal mūsų paslaugų teikimo sąlygas. Daugiau informacijos rasite adresu https://www.mapbox.com/legal/tos.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-nl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Het Mapbox-logowoordmerk moet ingeschakeld blijven in overeenstemming met onze Servicevoorwaarden. Zie https://www.mapbox.com/legal/tos voor meer details.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-no/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mapbox-logoens ordmerke må forbli aktivert i samsvar med våre vilkår for bruk. Se https://www.mapbox.com/legal/tos for mer informasjon.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Znak słowny logo Mapbox musi pozostać włączony zgodnie z naszymi Warunkami świadczenia usług. Więcej szczegółów można znaleźć na stronie https://www.mapbox.com/legal/tos.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-pt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | A marca do logotipo Mapbox deve permanecer habilitada de acordo com nossos Termos de Serviço. Consulte https://www.mapbox.com/legal/tos para obter mais detalhes.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-ru/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Логотип Mapbox должен оставаться видимым в соответствии с нашими Условиями обслуживания. Дополнительная информация: https://www.mapbox.com/legal/tos.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-sv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Mapbox-logotypens ordmärke måste förbli aktiverat i enlighet med våra användarvillkor. Se https://www.mapbox.com/legal/tos för mer information.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-uk/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Словесний знак логотипа Mapbox має залишатися ввімкненим відповідно до наших Умов використання. Додаткову інформацію див. на сторінці https://www.mapbox.com/legal/tos.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Nhãn từ biểu tượng Mapbox phải luôn được bật theo Điều khoản dịch vụ của chúng tôi. Xem https://www.mapbox.com/legal/tos để biết thêm chi tiết.
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 根据我们的服务条款,Mapbox 徽标字标必须保持启用状态。有关更多详细信息,请参阅 https://www.mapbox.com/legal/tos。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-zh-rHK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 根據我們的服務條款,Mapbox 標誌字標必須保持啟用。有關更多詳細信息,請參閱 https://www.mapbox.com/legal/tos。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 根據我們的服務條款,Mapbox 標誌字標必須保持啟用。有關更多詳細信息,請參閱 https://www.mapbox.com/legal/tos。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 根据我们的服务条款,Mapbox 徽标字标必须保持启用状态。有关更多详细信息,请参阅 https://www.mapbox.com/legal/tos。
3 |
4 |
--------------------------------------------------------------------------------
/plugin-logo/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | The Mapbox logo wordmark must remain enabled in accordance with our Terms of Service. See https://www.mapbox.com/legal/tos for more details.
3 |
--------------------------------------------------------------------------------
/plugin-overlay/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/plugin-overlay/api/Release/metalava.txt:
--------------------------------------------------------------------------------
1 | // Signature format: 3.0
2 | package com.mapbox.maps.plugin.overlay {
3 |
4 | public final class MapOverlayUtils {
5 | method public static com.mapbox.maps.plugin.overlay.MapOverlayPlugin getOverlay(com.mapbox.maps.plugin.delegates.MapPluginProviderDelegate);
6 | }
7 |
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/plugin-overlay/api/plugin-overlay.api:
--------------------------------------------------------------------------------
1 | public final class com/mapbox/maps/plugin/overlay/MapOverlayUtils {
2 | public static final synthetic fun createOverlayPlugin ()Lcom/mapbox/maps/plugin/overlay/MapOverlayPlugin;
3 | public static final fun getOverlay (Lcom/mapbox/maps/plugin/delegates/MapPluginProviderDelegate;)Lcom/mapbox/maps/plugin/overlay/MapOverlayPlugin;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/plugin-scalebar/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/plugin-scalebar/src/test/java/com/mapbox/maps/plugin/scalebar/ShadowProjection.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.scalebar;
2 |
3 | import com.mapbox.maps.Projection;
4 |
5 | import org.robolectric.annotation.Implementation;
6 | import org.robolectric.annotation.Implements;
7 |
8 | /**
9 | * To avoid calling native method of Projection, this shadow Projection
10 | * will be used for the Robolectric unit tests.
11 | */
12 | @Implements(Projection.class)
13 | public class ShadowProjection {
14 | @Implementation
15 | public static double getMetersPerPixelAtLatitude(double latitude, double zoom) {
16 | return 0.0;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/plugin-viewport/api/Release/metalava.txt:
--------------------------------------------------------------------------------
1 | // Signature format: 3.0
2 | package com.mapbox.maps.plugin.viewport {
3 |
4 | public final class ViewportUtils {
5 | method public static com.mapbox.maps.plugin.viewport.ViewportPlugin getViewport(com.mapbox.maps.plugin.delegates.MapPluginProviderDelegate);
6 | }
7 |
8 | }
9 |
10 | package com.mapbox.maps.plugin.viewport.transition {
11 |
12 | public final class TransitionUtilsKt {
13 | }
14 |
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/plugin-viewport/api/plugin-viewport.api:
--------------------------------------------------------------------------------
1 | public final class com/mapbox/maps/plugin/viewport/ViewportUtils {
2 | public static final synthetic fun createViewportPlugin ()Lcom/mapbox/maps/plugin/viewport/ViewportPlugin;
3 | public static final fun getViewport (Lcom/mapbox/maps/plugin/delegates/MapPluginProviderDelegate;)Lcom/mapbox/maps/plugin/viewport/ViewportPlugin;
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/plugin-viewport/src/main/kotlin/com/mapbox/maps/plugin/viewport/util/ViewportTelemetryEvents.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.viewport.util
2 |
3 | import com.mapbox.maps.module.TelemetryEvent
4 |
5 | internal object ViewportTelemetryEvents {
6 | val stateFollowPuck = TelemetryEvent.create("viewport/state/follow-puck")
7 | val stateOverview = TelemetryEvent.create("viewport/state/overview")
8 | val stateTransition = TelemetryEvent.create("viewport/state/transition")
9 | }
--------------------------------------------------------------------------------
/plugin-viewport/src/test/kotlin/com/mapbox/maps/plugin/viewport/ViewportTestConstants.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.viewport
2 |
3 | internal const val TRANSITION_UTILS = "com.mapbox.maps.plugin.viewport.transition.TransitionUtilsKt"
4 | internal const val CAMERA_ANIMATIONS_UTILS = "com.mapbox.maps.plugin.animation.CameraAnimationsUtils"
5 | internal const val LOCATION_COMPONENT_UTILS = "com.mapbox.maps.plugin.locationcomponent.LocationComponentUtils"
--------------------------------------------------------------------------------
/scripts/checksum.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | source scripts/checksum-base.sh
3 |
4 | add_files . build.gradle.kts
5 | add_files ./gradle/libs.versions.toml
6 | add_files ./gradle/wrapper gradle-wrapper.properties
7 |
8 | generate_checksums
9 |
--------------------------------------------------------------------------------
/scripts/clean.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -eo pipefail
2 | rm -rf ./gradle/configuration.gradle \
3 | ./app/build \
4 | ./app/.cxx \
5 | ./vendor/mapbox-gl-native-internal/internal/platform/android/sdk/.cxx \
6 | ./vendor/mapbox-gl-native-internal/internal/platform/android/sdk/build \
7 | ./vendor/mapbox-gl-native-internal/internal/vendor/common/platform/android/common/.cxx \
8 | ./vendor/mapbox-gl-native-internal/internal/vendor/common/platform/android/common/build
9 | # Clean all build files for plugins / modules / sdk / extensions
10 | for SUBDIR in $(ls -d */| grep -E 'plugin|extension|module|sdk')
11 | do
12 | rm -rf ./$SUBDIR/build ./$SUBDIR/.cxx
13 | done
--------------------------------------------------------------------------------
/scripts/install-pre-commit/install-pre-commit.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | #
4 | # This installs a pre-commit that runs secret-shield.
5 | #
6 |
7 | cp scripts/install-pre-commit/pre-commit.sh ././.git/hooks/pre-commit
8 | chmod +x ././.git/hooks/pre-commit
--------------------------------------------------------------------------------
/scripts/install-pre-commit/pre-commit.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | #
4 | # This file should be copied to .git/hooks/pre-commit by running `scripts/install-pre-commit/install-pre-commit.sh`
5 | #
6 |
7 | if [ -z `which secret-shield` ]; then
8 | echo 'Please install secret-shield globally. https://github.com/mapbox/secret-shield'; exit;
9 | fi
10 |
11 | secret-shield --pre-commit -C verydeep --enable "Mapbox Public Key" --disable "High-entropy base64 string" "Short high-entropy string" "Long high-entropy string"
--------------------------------------------------------------------------------
/scripts/merge-gradle-dependency-output.py:
--------------------------------------------------------------------------------
1 | import glob
2 |
3 |
4 | def add_content(file_name):
5 | with open(file_name) as f:
6 | data = f.read()
7 | return data
8 |
9 |
10 | result = ""
11 | files = glob.glob('*/build/dependencyUpdates/report.txt')
12 | for file_name in files:
13 | result += add_content(file_name)
14 |
15 | with open('merged_report.txt', 'w') as f:
16 | f.write(result)
17 |
--------------------------------------------------------------------------------
/scripts/sanity-test/exclude-sanity-test-gen.json:
--------------------------------------------------------------------------------
1 | [
2 |
3 | ]
--------------------------------------------------------------------------------
/sdk-base/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/MapInteraction.java:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | /**
6 | * Base class for interactions. Should not be used directly.
7 | */
8 | public abstract class MapInteraction {
9 |
10 | /**
11 | * Actually initialized in constructor so should never be nullable.
12 | */
13 | @NonNull
14 | Interaction coreInteraction;
15 | }
16 |
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/MapLoadingErrorDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | import androidx.annotation.RestrictTo
4 |
5 | /**
6 | * For internal usage.
7 | */
8 | @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
9 | fun interface MapLoadingErrorDelegate {
10 |
11 | /**
12 | * Send [MapLoadingError].
13 | */
14 | fun sendMapLoadingError(error: MapLoadingError)
15 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/MapboxExperimental.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | /**
4 | * Annotation class to mark API as experimental.
5 | */
6 | @RequiresOptIn(
7 | level = RequiresOptIn.Level.WARNING,
8 | message = "This API is experimental. It may be changed in the future without notice."
9 | )
10 | @Retention(AnnotationRetention.BINARY)
11 | @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)
12 | @MustBeDocumented
13 | annotation class MapboxExperimental
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/MapboxLifecycleObserver.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps
2 |
3 | /**
4 | * MapboxLifecycleObserver interface defines the lifecycle events that needed by MapView.
5 | */
6 | interface MapboxLifecycleObserver {
7 | /**
8 | * Called to start rendering
9 | */
10 | fun onStart()
11 |
12 | /**
13 | * Called to stop rendering
14 | */
15 | fun onStop()
16 |
17 | /**
18 | * Called to dispose the renderer
19 | */
20 | fun onDestroy()
21 |
22 | /**
23 | * Called to reduce memory use
24 | */
25 | fun onLowMemory()
26 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/exception/WorkerThreadException.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.exception
2 |
3 | import java.lang.RuntimeException
4 |
5 | /**
6 | * Exception thrown when a worker thread calls in a main thread only class.
7 | */
8 | class WorkerThreadException : RuntimeException(
9 | """
10 | The exception that is thrown when an application attempts to
11 | perform a map operation on a worker thread.
12 | """.trimIndent()
13 | )
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/extension/observable/model/Error.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.observable.model
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | /**
6 | *The data class for error in Observer
7 | */
8 | @Deprecated(
9 | message = "This data class is deprecated, and will be removed in next major release.",
10 | replaceWith = ReplaceWith("ResourceRequestError"),
11 | level = DeprecationLevel.WARNING
12 | )
13 | data class Error(
14 | /**
15 | * "reason" property
16 | */
17 | @SerializedName("reason") val reason: ResponseErrorReason,
18 | /**
19 | * "message" property
20 | */
21 | @SerializedName("message") val message: String
22 | )
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/extension/observable/model/RequestPriority.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.extension.observable.model
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | /**
6 | * Describes priority for request object.
7 | * @param value String value of this enum
8 | */
9 | @Deprecated(
10 | message = "This enum class is deprecated, and will be removed in next major release.",
11 | replaceWith = ReplaceWith("RequestPriorityType"),
12 | level = DeprecationLevel.WARNING
13 | )
14 | enum class RequestPriority(val value: String) {
15 | /** Regular priority. */
16 | @SerializedName("regular")
17 | REGULAR("regular"),
18 |
19 | /** low priority. */
20 | @SerializedName("low")
21 | LOW("low")
22 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/interactions/FeatureStateCallback.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.interactions
2 |
3 | import com.mapbox.maps.MapboxExperimental
4 |
5 | /**
6 | * Callback for `MapboxMap.getFeatureState`.
7 | */
8 | @MapboxExperimental
9 | fun interface FeatureStateCallback {
10 |
11 | /**
12 | * Triggered when `MapboxMap.getFeatureState` is done.
13 | *
14 | * Note: this callback is not triggered if `MapboxMap.getFeatureState` was canceled
15 | * or an error occurred.
16 | */
17 | fun onFeatureState(state: FS)
18 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/ContextBinder.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 |
6 | /**
7 | * Interface to bind a View and underlying context
8 | */
9 | fun interface ContextBinder {
10 | /**
11 | * Bind the ViewPlugin with current map context. This will create a View that
12 | * will be added to the MapView.
13 | *
14 | * @param context The hosting context
15 | * @param attrs parent attributes
16 | * @param pixelRatio the pixel ratio of the device
17 | * @return View that will be added to the MapView
18 | */
19 | fun bind(context: Context, attrs: AttributeSet?, pixelRatio: Float)
20 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/InvalidPluginConfigurationException.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin
2 |
3 | /**
4 | * Exception thrown when a plugin configuration is invalid.
5 | */
6 | class InvalidPluginConfigurationException(exceptionMessage: String) : Exception(exceptionMessage)
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/LifecyclePlugin.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin
2 |
3 | /**
4 | * Interface for plugins interacting with the lifecycle of the hosting context.
5 | */
6 | interface LifecyclePlugin {
7 |
8 | /**
9 | * Called whenever activity's/fragment's lifecycle is entering a "started" state.
10 | */
11 | fun onStart() {}
12 |
13 | /**
14 | * Called whenever activity's/fragment's lifecycle is entering a "stopped" state.
15 | */
16 | fun onStop() {}
17 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/MapPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin
2 |
3 | import com.mapbox.maps.plugin.delegates.MapDelegateProvider
4 |
5 | /**
6 | * Parent definition of all Map plugins.
7 | */
8 | interface MapPlugin {
9 | /**
10 | * Called when the plugin is first added to the map.
11 | */
12 | fun initialize() {
13 | // optional
14 | }
15 |
16 | /**
17 | * Called when the map is destroyed. Should be used to cleanup plugin resources for that map.
18 | */
19 | fun cleanup() {
20 | // optional
21 | }
22 |
23 | /**
24 | * Provides all map delegate instances.
25 | */
26 | fun onDelegateProvider(delegateProvider: MapDelegateProvider) {
27 | // optional
28 | }
29 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/MapSizePlugin.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin
2 |
3 | /**
4 | * Plugin interface invoked when the size of map changes.
5 | */
6 | interface MapSizePlugin {
7 |
8 | /**
9 | * Invoked when MapView's width and height have changed.
10 | * @param width the width of mapView
11 | * @param height the height of mapView
12 | */
13 | fun onSizeChanged(width: Int, height: Int) {
14 | // optional
15 | }
16 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/MapStyleObserverPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin
2 |
3 | import com.mapbox.maps.MapboxStyleManager
4 |
5 | /**
6 | * Interface for plugins need to be aware of the style change event.
7 | */
8 | interface MapStyleObserverPlugin {
9 | /**
10 | * Called when a new Style is loaded.
11 | */
12 | fun onStyleChanged(style: MapboxStyleManager)
13 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/animation/CameraAnimatorChangeListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.animation
2 |
3 | /**
4 | * Interface to get updated non-nullable animator values.
5 | */
6 | fun interface CameraAnimatorChangeListener {
7 |
8 | /**
9 | * Called when new animator value has arrived different from previous one.
10 | *
11 | * @param updatedValue value when given camera property has changed.
12 | */
13 | fun onChanged(updatedValue: T)
14 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/animation/CameraAnimatorNullableChangeListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.animation
2 |
3 | /**
4 | * Interface to get updated animator values including nulls.
5 | */
6 | fun interface CameraAnimatorNullableChangeListener {
7 |
8 | /**
9 | * Called when new animator value has arrived different from previous one.
10 | *
11 | * @param updatedValue value when given camera property has changed.
12 | */
13 | fun onChanged(updatedValue: T?)
14 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/annotation/AnnotationOptions.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.annotation
2 |
3 | import com.mapbox.geojson.Geometry
4 |
5 | /**
6 | * Options interface for building annotations
7 | */
8 | fun interface AnnotationOptions> {
9 | /**
10 | * Build an annotation
11 | *
12 | * @param id: the id for this annotation
13 | * @param annotationManager: the annotationManager that manage this annotation
14 | *
15 | * @return the annotation that is built
16 | */
17 | fun build(id: String, annotationManager: AnnotationManager): T
18 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/annotation/AnnotationType.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.annotation
2 |
3 | /**
4 | * Enum class for annotation types
5 | */
6 | enum class AnnotationType(
7 | /** The value of type */
8 | var value: Int
9 | ) {
10 | /** PolygonAnnotation type */
11 | PolygonAnnotation(1),
12 |
13 | /** PolylineAnnotation type */
14 | PolylineAnnotation(2),
15 |
16 | /** PointAnnotation type */
17 | PointAnnotation(3),
18 |
19 | /** CircleAnnotation type */
20 | CircleAnnotation(4),
21 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/annotation/OnAnnotationClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.annotation
2 |
3 | /**
4 | * Generic interface definition of a callback to be invoked when an annotation has been clicked.
5 | *
6 | * @param generic parameter extending from Annotation
7 | */
8 | fun interface OnAnnotationClickListener> {
9 | /**
10 | * Called when an annotation has been clicked
11 | *
12 | * @param annotation the annotation clicked.
13 | * @return True if this click should be consumed and not passed further to other listeners
14 | * registered afterwards, false otherwise.
15 | */
16 | fun onAnnotationClick(annotation: T): Boolean
17 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/annotation/OnAnnotationLongClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.annotation
2 |
3 | /**
4 | * Generic fun interface definition of a callback to be invoked when an annotation has been long clicked.
5 | *
6 | * @param generic parameter extending from Annotation
7 | */
8 | fun interface OnAnnotationLongClickListener> {
9 | /**
10 | * Generic fun interface definition of a callback to be invoked when an annotation has been long clicked.
11 | *
12 | * @param generic parameter extending from Annotation
13 | */
14 | fun onAnnotationLongClick(annotation: T): Boolean
15 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/annotation/OnClusterClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.annotation
2 |
3 | /**
4 | * Interface definition of a callback to be invoked when cluster with annotations has been clicked.
5 | */
6 | fun interface OnClusterClickListener {
7 | /**
8 | * Called when an cluster has been clicked.
9 | *
10 | * @param cluster the clicked cluster represented by [ClusterFeature].
11 | * @return True if this click should be consumed and not passed further to other listeners
12 | * registered afterwards, false otherwise.
13 | */
14 | fun onClusterClick(cluster: ClusterFeature): Boolean
15 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/annotation/OnClusterLongClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.annotation
2 |
3 | /**
4 | * Interface definition of a callback to be invoked when cluster with annotations has been long clicked.
5 | **/
6 | fun interface OnClusterLongClickListener {
7 | /**
8 | * Called when an cluster has been long clicked.
9 | *
10 | * @param cluster the long clicked cluster represented by [ClusterFeature].
11 | * @return True if this click should be consumed and not passed further to other listeners
12 | * registered afterwards, false otherwise.
13 | */
14 | fun onClusterLongClick(cluster: ClusterFeature): Boolean
15 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/attribution/AttributionDialogManager.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.attribution
2 |
3 | import com.mapbox.maps.plugin.delegates.MapAttributionDelegate
4 |
5 | /**
6 | * Interface for attribution dialog manager. This interface can be used to implement your
7 | * own AttributionDialogManager to replace the default attribution dialog.
8 | */
9 | interface AttributionDialogManager {
10 |
11 | /**
12 | * Invoked when the map attribution should be shown to the end user
13 | *
14 | */
15 | fun showAttribution(mapAttributionDelegate: MapAttributionDelegate)
16 |
17 | /**
18 | * Invoked when the hosting Activity#onStop is called
19 | */
20 | fun onStop()
21 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/attribution/OnAttributionClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.attribution
2 |
3 | /**
4 | * Listener to get OnClick event on the view.
5 | */
6 | fun interface OnAttributionClickListener {
7 |
8 | /**
9 | * Invoked when the attribution is clicked.
10 | */
11 | fun onAttributionClick()
12 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/compass/OnCompassClickListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.compass
2 |
3 | /**
4 | * Listener to get OnClick event on the view.
5 | */
6 | fun interface OnCompassClickListener {
7 |
8 | /**
9 | * Invoked when the compass is clicked.
10 | */
11 | fun onCompassClick()
12 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/delegates/MapPluginProviderDelegate.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.delegates
2 |
3 | import com.mapbox.maps.plugin.MapPlugin
4 |
5 | /**
6 | * Definition of a map plugin provider delegate.
7 | */
8 | interface MapPluginProviderDelegate {
9 | /**
10 | * Get the plugin instance.
11 | *
12 | * @param id plugin id
13 | * @return created plugin instance or null if no plugin is found for given id.
14 | */
15 | fun getPlugin(id: String): T?
16 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/locationcomponent/OnIndicatorAccuracyRadiusChangedListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.locationcomponent
2 |
3 | /**
4 | * Listener that gets invoked when indicator accuracy radius changes.
5 | */
6 | fun interface OnIndicatorAccuracyRadiusChangedListener {
7 | /**
8 | * This method is called on each accuracy radius change of the location indicator, including each animation frame.
9 | *
10 | * @param radius indicator's accuracy radius
11 | */
12 | fun onIndicatorAccuracyRadiusChanged(radius: Double)
13 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/locationcomponent/OnIndicatorBearingChangedListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.locationcomponent
2 |
3 | /**
4 | * Listener that gets invoked when indicator bearing changes.
5 | */
6 | fun interface OnIndicatorBearingChangedListener {
7 | /**
8 | * This method is called on each bearing change of the location indicator, including each animation frame.
9 | *
10 | * @param bearing indicator's bearing
11 | */
12 | fun onIndicatorBearingChanged(bearing: Double)
13 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/locationcomponent/OnIndicatorPositionChangedListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.locationcomponent
2 |
3 | import com.mapbox.geojson.Point
4 |
5 | /**
6 | * Listener that gets invoked when indicator position changes.
7 | */
8 | fun interface OnIndicatorPositionChangedListener {
9 | /**
10 | * This method is called on each position change of the location indicator, including each animation frame.
11 | *
12 | * @param point indicator's position
13 | */
14 | fun onIndicatorPositionChanged(point: Point)
15 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/locationcomponent/PuckLocatedAtPointListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.locationcomponent
2 |
3 | /**
4 | * Listener that gets invoked when the is location puck rendered on point validation finished.
5 | */
6 | fun interface PuckLocatedAtPointListener {
7 | /**
8 | * This method is called when the is location puck rendered on point validation finished.
9 | *
10 | * @param isPuckLocatedAtPoint true if the given point is on the rendered location puck, false otherwise.
11 | */
12 | fun onResult(isPuckLocatedAtPoint: Boolean)
13 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/logo/LogoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.logo
2 |
3 | import com.mapbox.maps.plugin.ViewPlugin
4 | import com.mapbox.maps.plugin.logo.generated.LogoSettingsInterface
5 |
6 | /**
7 | * Presenter interface for the logo.
8 | */
9 | interface LogoPlugin : ViewPlugin, LogoSettingsInterface
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/overlay/MapOverlayCoordinatesProvider.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.overlay
2 |
3 | import com.mapbox.geojson.Point
4 |
5 | /**
6 | * Interface that should be implemented by users to provide all the coordinates that will shown
7 | * on MapView without covered by overlays.
8 | */
9 | fun interface MapOverlayCoordinatesProvider {
10 | /**
11 | * Get all the coordinates that will shown on MapView
12 | * @return return the shown coordinates
13 | */
14 | fun getShownCoordinates(): List
15 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/overlay/OnReframeFinished.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.overlay
2 |
3 | import com.mapbox.maps.CameraOptions
4 |
5 | /**
6 | * Interface invoked after reframe calculations are finished which provides valid [CameraOptions] object
7 | */
8 | fun interface OnReframeFinished {
9 | /**
10 | * Callback method to return the [CameraOptions] object.
11 | * @param cameraOptions the [CameraOptions] that refame operation will apply.
12 | */
13 | fun onReframeFinished(cameraOptions: CameraOptions?)
14 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/scalebar/ScaleBarPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.scalebar
2 |
3 | import com.mapbox.maps.plugin.MapSizePlugin
4 | import com.mapbox.maps.plugin.ViewPlugin
5 | import com.mapbox.maps.plugin.scalebar.generated.ScaleBarSettingsInterface
6 |
7 | /**
8 | * Presenter interface for the ScaleBar.
9 | */
10 | interface ScaleBarPlugin : ViewPlugin, MapSizePlugin, ScaleBarSettingsInterface {
11 | /**
12 | * How many meters in each pixel.
13 | */
14 | var distancePerPixel: Float
15 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/viewport/CompletionListener.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.viewport
2 |
3 | /**
4 | * A listener that's notified when the action is completed.
5 | */
6 | fun interface CompletionListener {
7 | /**
8 | * Notifies the action is completed.
9 | *
10 | * Transition may end early if they fail or are interrupted(e.g. by another call to [ViewportPlugin.transitionTo]
11 | * or [ViewportPlugin.idle]).
12 | *
13 | * @param isFinished true if the transition ran to completion and false
14 | * if it was canceled or interrupted.
15 | */
16 | fun onComplete(isFinished: Boolean)
17 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/plugin/viewport/state/ViewportStateDataObserver.kt:
--------------------------------------------------------------------------------
1 | package com.mapbox.maps.plugin.viewport.state
2 |
3 | import com.mapbox.maps.CameraOptions
4 |
5 | /**
6 | * Observer that gets notified whenever new viewport data is available.
7 | */
8 | fun interface ViewportStateDataObserver {
9 | /**
10 | * Notifies that new data is available.
11 | *
12 | * @param cameraOptions The most recent [CameraOptions] from the [ViewportState].
13 | * @return true if new data is needed and stay subscribed. returning false will unsubscribe from further data updates.
14 | */
15 | fun onNewData(cameraOptions: CameraOptions): Boolean
16 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/java/com/mapbox/maps/util/CameraOptionsUtils.kt:
--------------------------------------------------------------------------------
1 | @file:JvmName("CameraOptionsUtils")
2 |
3 | package com.mapbox.maps.util
4 |
5 | import com.mapbox.maps.CameraOptions
6 |
7 | /**
8 | * Check whether given [CameraOptions] object is empty.
9 | */
10 | val CameraOptions.isEmpty: Boolean
11 | get() {
12 | if (center != null) return false
13 | if (padding != null) return false
14 | if (anchor != null) return false
15 | if (zoom != null) return false
16 | if (bearing != null) return false
17 | if (pitch != null) return false
18 |
19 | return true
20 | }
--------------------------------------------------------------------------------
/sdk-base/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------