diff --git a/.circleci/config.yml b/.circleci/config.yml index c82fcb46f66..b267c1f92f2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -38,6 +38,7 @@ workflows: only: - main - release-v.* + - NAVAND-1166-dd-logs - release: filters: tags: diff --git a/gradle.properties b/gradle.properties index 3ace1e24505..648ea7de046 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,6 +11,8 @@ POM_LICENCE_DIST=repo POM_DEVELOPER_ID=mapbox POM_DEVELOPER_NAME=Mapbox +ALLOW_SNAPSHOT_REPOSITORY=true + # IDE (e.g. Android Studio) users: # Gradle settings configured through the IDE *will override* # any settings specified in this file. diff --git a/gradle/artifact-settings.gradle b/gradle/artifact-settings.gradle index 42792aeef58..b4e8682bd46 100644 --- a/gradle/artifact-settings.gradle +++ b/gradle/artifact-settings.gradle @@ -12,7 +12,7 @@ ext { mapboxArtifactLicenseUrl = 'https://www.mapbox.com/legal/tos/' snapshot = project.hasProperty("snapshot") ? project.property("snapshot").toBoolean() : false releaseTagPrefix = project.hasProperty('RELEASE_TAG_PREFIX') ? project.property('RELEASE_TAG_PREFIX') : 'v' - versionName = getVersionName() + versionName = '2.7.2-logged-SNAPSHOT' } def getVersionName() { diff --git a/libnavui-maps/build.gradle b/libnavui-maps/build.gradle index 5833da7783d..ec8ed9fbe91 100644 --- a/libnavui-maps/build.gradle +++ b/libnavui-maps/build.gradle @@ -43,6 +43,11 @@ dependencies { implementation project(":libnavui-resources") api dependenciesList.mapboxMapSdk + api("com.mapbox.maps:android-core") { + version { + strictly '10.7.0-a34a63fde5-SNAPSHOT' + } + } api dependenciesList.mapboxSdkTurf implementation dependenciesList.androidXAppCompat @@ -63,7 +68,7 @@ dokkaHtmlPartial { moduleName.set("UI Maps") dokkaSourceSets { configureEach { - reportUndocumented.set(true) + reportUndocumented.set(false) perPackageOption { matchingRegex.set("com.mapbox.navigation.ui.maps.internal.*") suppress.set(true) diff --git a/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSource.kt b/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSource.kt index 4fa254462d3..b780e44a5d8 100644 --- a/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSource.kt +++ b/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSource.kt @@ -32,6 +32,7 @@ import com.mapbox.navigation.ui.maps.camera.data.debugger.MapboxNavigationViewpo import com.mapbox.navigation.ui.maps.camera.utils.normalizeBearing import com.mapbox.navigation.utils.internal.ifNonNull import com.mapbox.navigation.utils.internal.logE +import com.mapbox.navigation.utils.internal.logI import com.mapbox.navigation.utils.internal.logW import com.mapbox.navigation.utils.internal.toPoint import java.util.concurrent.CopyOnWriteArraySet @@ -270,6 +271,10 @@ class MapboxNavigationViewportDataSource( * to control the camera in scenarios like free drive where the maneuver points are not available. */ var followingPadding: EdgeInsets = EMPTY_EDGE_INSETS + set(value) { + field = value + logI("followingPadding: $value") + } private var appliedFollowingPadding = followingPadding /** @@ -279,6 +284,10 @@ class MapboxNavigationViewportDataSource( * or its remainder if [onRouteProgressChanged] is also available, and the [additionalPointsToFrameForOverview]. */ var overviewPadding: EdgeInsets = EMPTY_EDGE_INSETS + set(value) { + field = value + logI("overviewPadding: $value") + } private var additionalPointsToFrameForFollowing: List = emptyList() private var additionalPointsToFrameForOverview: List = emptyList() @@ -333,6 +342,10 @@ class MapboxNavigationViewportDataSource( * @see [getViewportData] */ fun evaluate() { + logI("evaluate; options: $options") + logI("evaluate; followingPadding: $followingPadding") + logI("evaluate; overviewPadding: $overviewPadding") + updateFollowingData() updateOverviewData() @@ -412,6 +425,7 @@ class MapboxNavigationViewportDataSource( * @see [evaluate] */ fun onRouteChanged(route: NavigationRoute) { + logI("onRouteChanged; route: ${route.id}", LOG_CATEGORY) if (!route.directionsRoute.isSameRoute(navigationRoute?.directionsRoute)) { clearRouteData() this.navigationRoute = route @@ -477,6 +491,9 @@ class MapboxNavigationViewportDataSource( return } + val stepProgress = routeProgress.currentLegProgress?.currentStepProgress + logI("onRouteProgressChanged; route: ${routeProgress.navigationRoute.id}, stepIndex=${stepProgress?.stepIndex}, distanceRemaining=${stepProgress?.distanceRemaining}", LOG_CATEGORY) + ifNonNull( routeProgress.currentLegProgress, routeProgress.currentLegProgress?.currentStepProgress @@ -558,6 +575,7 @@ class MapboxNavigationViewportDataSource( * Provide additional points that should be fitted into the following frame update. */ fun additionalPointsToFrameForFollowing(points: List) { + logI("additionalPointsToFrameForFollowing: $points", LOG_CATEGORY) additionalPointsToFrameForFollowing = ArrayList(points) } @@ -577,6 +595,7 @@ class MapboxNavigationViewportDataSource( * @see [evaluate] */ fun followingCenterPropertyOverride(value: Point?) { + logI("followingCenterPropertyOverride: $value", LOG_CATEGORY) followingCenterProperty.override = value } @@ -589,6 +608,7 @@ class MapboxNavigationViewportDataSource( * @see [evaluate] */ fun followingZoomPropertyOverride(value: Double?) { + logI("followingZoomPropertyOverride: $value", LOG_CATEGORY) followingZoomProperty.override = value } @@ -601,6 +621,7 @@ class MapboxNavigationViewportDataSource( * @see [evaluate] */ fun followingBearingPropertyOverride(value: Double?) { + logI("followingBearingPropertyOverride: $value", LOG_CATEGORY) followingBearingProperty.override = value } @@ -613,6 +634,7 @@ class MapboxNavigationViewportDataSource( * @see [evaluate] */ fun followingPitchPropertyOverride(value: Double?) { + logI("followingPitchPropertyOverride: $value", LOG_CATEGORY) followingPitchProperty.override = value } @@ -699,6 +721,11 @@ class MapboxNavigationViewportDataSource( // needs to be added here to be taken into account for bearing smoothing pointsForFollowing.addAll(additionalPointsToFrameForFollowing) + logI( + "updateFollowingData; location: $localTargetLocation", + LOG_CATEGORY + ) + if (pointsForFollowing.isEmpty()) { options.followingFrameOptions.run { val cameraState = mapboxMap.cameraState @@ -734,6 +761,10 @@ class MapboxNavigationViewportDataSource( options.followingFrameOptions.maximizeViewableGeometryWhenPitchZero && followingPitchProperty.get() == ZERO_PITCH ) { + logI( + "updateFollowingData; generating for maximal viewable area in pitch 0", + LOG_CATEGORY + ) mapboxMap.cameraForCoordinates( pointsForFollowing, followingPadding, @@ -758,17 +789,37 @@ class MapboxNavigationViewportDataSource( .pitch(followingPitchProperty.get()) .zoom(cameraState.zoom) .build() + logI( + "updateFollowingData; fallbackCameraOptions: $fallbackCameraOptions", + LOG_CATEGORY + ) + logI( + "updateFollowingData; map size: $mapSize, screenBox=$screenBox, resultingPadding=$padding", + LOG_CATEGORY + ) if (pointsForFollowing.size > 1) { + logI( + "updateFollowingData; generating for multiple points", + LOG_CATEGORY + ) mapboxMap.cameraForCoordinates( pointsForFollowing, fallbackCameraOptions, screenBox ) } else { + logI( + "updateFollowingData; generating for one point", + LOG_CATEGORY + ) fallbackCameraOptions } } + logI( + "updateFollowingData; generated cameraFrame: $cameraFrame", + LOG_CATEGORY + ) followingCenterProperty.fallback = cameraFrame.center!! options.followingFrameOptions.run { followingZoomProperty.fallback = max(min(cameraFrame.zoom!!, maxZoom), minZoom) diff --git a/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSourceOptions.kt b/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSourceOptions.kt index 862e3f2dd52..03e09432927 100644 --- a/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSourceOptions.kt +++ b/libnavui-maps/src/main/java/com/mapbox/navigation/ui/maps/camera/data/MapboxNavigationViewportDataSourceOptions.kt @@ -17,6 +17,10 @@ class MapboxNavigationViewportDataSourceOptions internal constructor() { * Options that impact generation of overview frames. */ val overviewFrameOptions = OverviewFrameOptions() + + override fun toString(): String { + return "MapboxNavigationViewportDataSourceOptions(followingFrameOptions=$followingFrameOptions, overviewFrameOptions=$overviewFrameOptions)" + } } /** @@ -179,6 +183,10 @@ class FollowingFrameOptions internal constructor() { * Defaults to `20.0` meters. */ var minimumDistanceBetweenIntersections = 20.0 + + override fun toString(): String { + return "IntersectionDensityCalculation(enabled=$enabled, averageDistanceMultiplier=$averageDistanceMultiplier, minimumDistanceBetweenIntersections=$minimumDistanceBetweenIntersections)" + } } /** @@ -218,6 +226,10 @@ class FollowingFrameOptions internal constructor() { StepManeuver.OFF_RAMP, StepManeuver.FORK ) + + override fun toString(): String { + return "PitchNearManeuvers(enabled=$enabled, triggerDistanceFromManeuver=$triggerDistanceFromManeuver, excludedManeuvers=$excludedManeuvers)" + } } /** @@ -253,6 +265,10 @@ class FollowingFrameOptions internal constructor() { * Defaults to `100.0` meters. */ var distanceToFrameAfterManeuver = 100.0 + + override fun toString(): String { + return "FrameGeometryAfterManeuver(enabled=$enabled, distanceToCoalesceCompoundManeuvers=$distanceToCoalesceCompoundManeuvers, distanceToFrameAfterManeuver=$distanceToFrameAfterManeuver)" + } } /** @@ -275,6 +291,10 @@ class FollowingFrameOptions internal constructor() { * Defaults to `45.0` degrees. */ var maxBearingAngleDiff = 45.0 + + override fun toString(): String { + return "BearingSmoothing(enabled=$enabled, maxBearingAngleDiff=$maxBearingAngleDiff)" + } } /** @@ -291,6 +311,10 @@ class FollowingFrameOptions internal constructor() { require(y in 0.0..1.0) { "y value must be within [0.0..1.0] range" } } } + + override fun toString(): String { + return "FollowingFrameOptions(defaultPitch=$defaultPitch, minZoom=$minZoom, maxZoom=$maxZoom, focalPoint=$focalPoint, maximizeViewableGeometryWhenPitchZero=$maximizeViewableGeometryWhenPitchZero, intersectionDensityCalculation=$intersectionDensityCalculation, pitchNearManeuvers=$pitchNearManeuvers, frameGeometryAfterManeuver=$frameGeometryAfterManeuver, bearingSmoothing=$bearingSmoothing, centerUpdatesAllowed=$centerUpdatesAllowed, zoomUpdatesAllowed=$zoomUpdatesAllowed, bearingUpdatesAllowed=$bearingUpdatesAllowed, pitchUpdatesAllowed=$pitchUpdatesAllowed, paddingUpdatesAllowed=$paddingUpdatesAllowed)" + } } /** @@ -389,5 +413,13 @@ class OverviewFrameOptions internal constructor() { * The factor has to be a positive integer. */ var simplificationFactor = 25 + + override fun toString(): String { + return "GeometrySimplification(enabled=$enabled, simplificationFactor=$simplificationFactor)" + } + } + + override fun toString(): String { + return "OverviewFrameOptions(maxZoom=$maxZoom, geometrySimplification=$geometrySimplification, centerUpdatesAllowed=$centerUpdatesAllowed, zoomUpdatesAllowed=$zoomUpdatesAllowed, bearingUpdatesAllowed=$bearingUpdatesAllowed, pitchUpdatesAllowed=$pitchUpdatesAllowed, paddingUpdatesAllowed=$paddingUpdatesAllowed)" } }