package eu.ztsh.garmin import com.mapbox.navigation.ui.maneuver.model.Maneuver class ManeuverMapper { companion object { fun apply(maneuver: Maneuver): State { val state = State() maneuver.apply { this.primary.apply { when (this.type) { "roundabout" -> { state.direction.out = OutType.RightRoundabout } "arrive" -> { state.flag = true } } when (this.modifier) { "right" -> { when (this.type) { "turn" -> state.direction.angle = OutAngle.Right "roundabout" -> { when (this.degrees) { 137.0 -> state.direction.angle = OutAngle.EasyRight } } } } "left" -> { when (this.type) { "turn" -> state.direction.angle = OutAngle.Left } } } } this.stepDistance.apply { this.distanceRemaining?.apply { distanceFormatter.formatDistance(distanceRemaining!!).split(" ").apply { state.distance = this[0].toInt() state.unit = when (this[1]) { "m" -> Unit.Metres "km" -> Unit.Kilometres else -> {Unit.Any} } } } } } return state } } }