package mx.trackermap.TrackerMap.android.shared import android.util.Log import mx.trackermap.TrackerMap.android.R import mx.trackermap.TrackerMap.android.map.MapFragment import mx.trackermap.TrackerMap.client.models.Position import mx.trackermap.TrackerMap.client.models.Stop import mx.trackermap.TrackerMap.client.models.UnitInformation import mx.trackermap.TrackerMap.utils.MarkerType object MarkerTransformations { fun unitToMarker(unit: UnitInformation): MapFragment.Marker? { if (unit.position == null || unit.position!!.latitude == null || unit.position!!.longitude == null) { return null } return MapFragment.Marker( unit.position!!.id!!, unit.device.name, unit.position!!.latitude!!, unit.position!!.longitude!!, categoryToMarkerType(unit.device.category ?: "") ) } fun positionToMarker(position: Position): MapFragment.Marker? { if (position.latitude == null || position.longitude == null) { return null } return MapFragment.Marker( position.id!!, "", position.latitude!!, position.longitude!! ) } fun stopToMarker(stop: Stop): MapFragment.Marker? { Log.d("MarkerTransformations", "stopToMarker($stop)") if (stop.latitude == null || stop.longitude == null) { return null } return MapFragment.Marker( stop.deviceId!!, stop.deviceName!!, stop.latitude!!, stop.longitude!! ) } private fun categoryToMarkerType(category: String?): MarkerType { return when (category?.lowercase()) { "animal" -> MarkerType.ANIMAL "backhoe" -> MarkerType.BACKHOE "bicycle" -> MarkerType.BICYCLE "boat" -> MarkerType.BOAT "bus" -> MarkerType.BUS "car" -> MarkerType.CAR "crane" -> MarkerType.CRANE "helicopter" -> MarkerType.HELICOPTER "motorcycle" -> MarkerType.MOTORCYCLE "offroad" -> MarkerType.OFFROAD "person" -> MarkerType.PERSON "pickup" -> MarkerType.PICKUP "plane" -> MarkerType.PLANE "scooter" -> MarkerType.SCOOTER "ship" -> MarkerType.SHIP "tractor" -> MarkerType.TRACTOR "train" -> MarkerType.TRAIN "tram" -> MarkerType.TRAM "trolleybus" -> MarkerType.TROLLEYBUS "truck" -> MarkerType.TRUCK "van" -> MarkerType.VAN else -> MarkerType.DEFAULT } } fun markerTypeToResourceId(markerType: MarkerType): Int { return when (markerType) { MarkerType.ANIMAL -> R.drawable.map_animal MarkerType.BACKHOE -> R.drawable.map_backhoe MarkerType.BICYCLE -> R.drawable.map_bicycle MarkerType.BOAT -> R.drawable.map_boat MarkerType.BUS -> R.drawable.map_bus MarkerType.CAR -> R.drawable.map_car MarkerType.CRANE -> R.drawable.map_crane MarkerType.DEFAULT -> R.drawable.map_default MarkerType.HELICOPTER -> R.drawable.map_helicopter MarkerType.MOTORCYCLE -> R.drawable.map_motorcycle MarkerType.OFFROAD -> R.drawable.map_offroad MarkerType.PERSON -> R.drawable.map_person MarkerType.PICKUP -> R.drawable.map_pickup MarkerType.PLANE -> R.drawable.map_plane MarkerType.SCOOTER -> R.drawable.map_scooter MarkerType.SHIP -> R.drawable.map_ship MarkerType.TRACTOR -> R.drawable.map_tractor MarkerType.TRAIN -> R.drawable.map_train MarkerType.TRAM -> R.drawable.map_tram MarkerType.TROLLEYBUS -> R.drawable.map_trolleybus MarkerType.TRUCK -> R.drawable.map_truck MarkerType.VAN -> R.drawable.map_van MarkerType.REPORT_POSITION -> R.drawable.map_report_position MarkerType.REPORT_START -> R.drawable.map_report_start MarkerType.REPORT_END -> R.drawable.map_report_end } } fun markerTypeToStringId(markerType: MarkerType): Int { return when (markerType) { MarkerType.ANIMAL -> R.string.unit_category_animal MarkerType.BACKHOE -> R.string.unit_category_backhoe MarkerType.BICYCLE -> R.string.unit_category_bicycle MarkerType.BOAT -> R.string.unit_category_boat MarkerType.BUS -> R.string.unit_category_bus MarkerType.CAR -> R.string.unit_category_car MarkerType.CRANE -> R.string.unit_category_crane MarkerType.DEFAULT -> R.string.unit_category_default MarkerType.HELICOPTER -> R.string.unit_category_helicopter MarkerType.MOTORCYCLE -> R.string.unit_category_motorcycle MarkerType.OFFROAD -> R.string.unit_category_offroad MarkerType.PERSON -> R.string.unit_category_person MarkerType.PICKUP -> R.string.unit_category_pickup MarkerType.PLANE -> R.string.unit_category_plane MarkerType.SCOOTER -> R.string.unit_category_scooter MarkerType.SHIP -> R.string.unit_category_ship MarkerType.TRACTOR -> R.string.unit_category_tractor MarkerType.TRAIN -> R.string.unit_category_train MarkerType.TRAM -> R.string.unit_category_tram MarkerType.TROLLEYBUS -> R.string.unit_category_trolleybus MarkerType.TRUCK -> R.string.unit_category_truck MarkerType.VAN -> R.string.unit_category_van else -> R.string.unit_category_default } } fun categoryToResourceId(category: String?): Int { return markerTypeToResourceId(categoryToMarkerType(category)) } fun categoryToStringId(category: String?): Int { return markerTypeToResourceId(categoryToMarkerType(category)) } }