Skip to content

Commit

Permalink
refactor move nav-native -> sdk type mapping and roadobject models to…
Browse files Browse the repository at this point in the history
… core
  • Loading branch information
Guardiola31337 committed Mar 17, 2021
1 parent eda0a6e commit e5bba10
Show file tree
Hide file tree
Showing 68 changed files with 2,017 additions and 1,890 deletions.
355 changes: 0 additions & 355 deletions libnavigation-base/api/current.txt

Large diffs are not rendered by default.

390 changes: 382 additions & 8 deletions libnavigation-core/api/current.txt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package com.mapbox.navigation.navigator
@file:JvmName("LocationEx")

package com.mapbox.navigation.core.navigator

import android.location.Location
import android.os.Build
Expand Down Expand Up @@ -50,5 +52,7 @@ internal fun Location.toFixLocation(): FixLocation {
)
}

internal fun List<FixLocation>.toLocations(): List<Location> = this.map { it.toLocation() }

private fun isCurrentSdkVersionEqualOrGreaterThan(sdkCode: Int): Boolean =
Build.VERSION.SDK_INT >= sdkCode

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.mapbox.navigation.navigator.internal
package com.mapbox.navigation.core.navigator

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject

data class RouteInitInfo(
internal data class RouteInitInfo(
val roadObjects: List<RoadObject>
)
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:JvmName("EHorizonMapper")

package com.mapbox.navigation.core.trip.model.eh

import com.mapbox.navigation.utils.internal.ThreadController
Expand All @@ -19,7 +21,7 @@ import com.mapbox.navigator.Standard
import kotlinx.coroutines.withContext

private typealias SDKRoadObjectType =
com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Map the ElectronicHorizonPosition.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mapbox.navigation.core.trip.model.eh

import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* EHorizonObjectDistanceInfo
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.mapbox.navigation.core.trip.model.eh

import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.session.EHorizonObserver

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.mapbox.navigation.core.trip.model.eh

import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.base.trip.model.roadobject.border.CountryBorderCrossingInfo
import com.mapbox.navigation.base.trip.model.roadobject.incident.IncidentInfo
import com.mapbox.navigation.base.trip.model.roadobject.tunnel.TunnelInfo
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.border.CountryBorderCrossingInfo
import com.mapbox.navigation.core.trip.model.roadobject.incident.IncidentInfo
import com.mapbox.navigation.core.trip.model.roadobject.tunnel.TunnelInfo

/**
* RoadObject metadata
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.mapbox.navigation.core.trip.model.eh

import androidx.annotation.StringDef

/**
* Holds available [RoadClass] types. See https://wiki.openstreetmap.org/wiki/Key:highway for further details.
*
Expand Down Expand Up @@ -54,4 +56,20 @@ object RoadClass {
* Describes a service other FRC.
*/
const val SERVICE_OTHER = "SERVICE_OTHER"

/**
* Road class type.
*/
@Retention
@StringDef(
MOTORWAY,
TRUNK,
PRIMARY,
SECONDARY,
TERTIARY,
UNCLASSIFIED,
RESIDENTIAL,
SERVICE_OTHER
)
annotation class Type
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mapbox.navigation.base.trip.model.roadobject
package com.mapbox.navigation.core.trip.model.roadobject

import androidx.annotation.IntDef

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
@file:JvmName("RoadObjectUtils")

package com.mapbox.navigation.base.trip.model.roadobject
package com.mapbox.navigation.core.trip.model.roadobject

import androidx.annotation.IntRange
import com.mapbox.api.directions.v5.models.DirectionsRoute
import com.mapbox.api.directions.v5.models.RouteOptions
import com.mapbox.core.constants.Constants
import com.mapbox.geojson.LineString
import com.mapbox.navigation.base.utils.ifNonNull
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.utils.internal.ifNonNull

private const val PRECISION_RANGE_START = 5L
private const val PRECISION_RANGE_END = 6L
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.border
package com.mapbox.navigation.core.trip.model.roadobject.border

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about country border crossings on the route.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mapbox.navigation.base.trip.model.roadobject.border
package com.mapbox.navigation.core.trip.model.roadobject.border

/**
* Administrative information.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mapbox.navigation.base.trip.model.roadobject.border
package com.mapbox.navigation.core.trip.model.roadobject.border

/**
* Administrative information.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.bridge
package com.mapbox.navigation.core.trip.model.roadobject.bridge

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about a bridge on the route.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.bridge
package com.mapbox.navigation.core.trip.model.roadobject.bridge

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about bridges on the route.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.bridge
package com.mapbox.navigation.core.trip.model.roadobject.bridge

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about bridges on the route.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.custom
package com.mapbox.navigation.core.trip.model.roadobject.custom

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about custom objects.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.incident
package com.mapbox.navigation.core.trip.model.roadobject.incident

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Incident alert provides information about incidents on a way like *congestion*, *mass transit*,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mapbox.navigation.base.trip.model.roadobject.incident
package com.mapbox.navigation.core.trip.model.roadobject.incident

/**
* Quantitative descriptor of congestion of [Incident].
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.mapbox.navigation.base.trip.model.roadobject.incident
package com.mapbox.navigation.core.trip.model.roadobject.incident

import androidx.annotation.StringDef

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.mapbox.navigation.base.trip.model.roadobject.incident
package com.mapbox.navigation.core.trip.model.roadobject.incident

import com.mapbox.api.directions.v5.models.Incident
import java.util.Date

/**
Expand All @@ -23,7 +24,7 @@ import java.util.Date
*/
class IncidentInfo private constructor(
val id: String,
val type: Int,
@Incident.IncidentType val type: Int,
@IncidentImpact.Impact val impact: String,
val congestion: IncidentCongestion?,
val isClosed: Boolean,
Expand Down Expand Up @@ -127,8 +128,8 @@ class IncidentInfo private constructor(
private val id: String,
) {

private var type: Int =
IncidentType.UNKNOWN
@Incident.IncidentType
private var type: Int = IncidentType.UNKNOWN

@IncidentImpact.Impact
private var impact: String = IncidentImpact.UNKNOWN
Expand All @@ -145,7 +146,7 @@ class IncidentInfo private constructor(
/**
* One of [IncidentType].
*/
fun type(incidentType: Int): Builder = apply {
fun type(@Incident.IncidentType incidentType: Int): Builder = apply {
this.type = incidentType
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package com.mapbox.navigation.base.trip.model.roadobject.incident
package com.mapbox.navigation.core.trip.model.roadobject.incident

import androidx.annotation.IntDef

/**
* Types of [Incident].
Expand Down Expand Up @@ -69,4 +71,25 @@ object IncidentType {
* Incident Alert Type weather.
*/
const val WEATHER = 52

/**
* Incident type.
*/
@Retention(AnnotationRetention.SOURCE)
@IntDef(
UNKNOWN,
ACCIDENT,
CONGESTION,
CONSTRUCTION,
DISABLED_VEHICLE,
LANE_RESTRICTION,
MASS_TRANSIT,
MISCELLANEOUS,
OTHER_NEWS,
PLANNED_EVENT,
ROAD_CLOSURE,
ROAD_HAZARD,
WEATHER
)
annotation class Type
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.restrictedarea
package com.mapbox.navigation.core.trip.model.roadobject.restrictedarea

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about restricted on the route.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.restrictedarea
package com.mapbox.navigation.core.trip.model.roadobject.restrictedarea

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about restricted areas on the route.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.restrictedarea
package com.mapbox.navigation.core.trip.model.roadobject.restrictedarea

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about restricted areas on the route.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.mapbox.navigation.base.trip.model.roadobject.reststop
package com.mapbox.navigation.core.trip.model.roadobject.reststop

import com.mapbox.navigation.base.trip.model.roadobject.RoadObject
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectGeometry
import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
import com.mapbox.navigation.core.trip.model.roadobject.RoadObjectType

/**
* Road object type that provides information about rest stops on the route.
Expand All @@ -14,7 +14,7 @@ import com.mapbox.navigation.base.trip.model.roadobject.RoadObjectType
class RestStop private constructor(
distanceFromStartOfRoute: Double?,
objectGeometry: RoadObjectGeometry,
val restStopType: Int
@RestStopType.Type val restStopType: Int
) : RoadObject(
RoadObjectType.REST_STOP,
distanceFromStartOfRoute,
Expand Down Expand Up @@ -70,8 +70,9 @@ class RestStop private constructor(
private val objectGeometry: RoadObjectGeometry
) {
private var distanceFromStartOfRoute: Double? = null
private var restStopType: Int =
RestStopType.Unknown

@RestStopType.Type
private var restStopType: Int = RestStopType.UNKNOWN

/**
* Add optional distance from start of route.
Expand All @@ -84,7 +85,7 @@ class RestStop private constructor(
/**
* Sets information about a rest stop. See [RestStopType].
*/
fun restStopType(restStopType: Int): Builder = apply {
fun restStopType(@RestStopType.Type restStopType: Int): Builder = apply {
this.restStopType = restStopType
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package com.mapbox.navigation.base.trip.model.roadobject.reststop
package com.mapbox.navigation.core.trip.model.roadobject.reststop

import androidx.annotation.IntDef

/**
* Utility that lists available rest stops point types.
Expand All @@ -10,15 +12,26 @@ object RestStopType {
* This means that the type is either erroneous,
* or there's a new type available server-side which will be exposed in the SDK in the future.
*/
const val Unknown = -1
const val UNKNOWN = -1

/**
* Describes a rest area.
*/
const val RestArea = 1
const val REST_AREA = 1

/**
* Describes a service area.
*/
const val ServiceArea = 2
const val SERVICE_AREA = 2

/**
* Rest stop type.
*/
@Retention(AnnotationRetention.SOURCE)
@IntDef(
UNKNOWN,
REST_AREA,
SERVICE_AREA
)
annotation class Type
}
Loading

0 comments on commit e5bba10

Please sign in to comment.