aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/shared/MarkerTransformations.kt
blob: f684a10614fed4a9a378a2fe803c0f33fab3b605 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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))
    }
}