diff options
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt')
-rw-r--r-- | androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt index 51b0118..8f9af3f 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt @@ -5,6 +5,7 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import androidx.fragment.app.commit import mx.trackermap.TrackerMap.android.R @@ -51,10 +52,13 @@ class MapWrapperFragment: Fragment() { childFragmentManager.commit { replace(R.id.mapContainer, mapFragment) } + + val layer = MapLayer.defaultLayer + binding.attributionText.text = HtmlCompat.fromHtml(layer.attribution, 0) } private fun removeMap() { - Log.d("UnitReportsFragment", "removeMap()") + Log.d("MapWrapperFragment", "removeMap()") childFragmentManager.commit { remove(mapFragment) } @@ -96,6 +100,7 @@ class MapWrapperFragment: Fragment() { height: Double = 0.00001, animated: Boolean = true ) { + Log.d("MapWrapperFragment", "Focusing on $latitude, $longitude") if (mapFragment.hasStarted) { mapFragment.focusOn(latitude, longitude, height, animated) } else { @@ -107,7 +112,7 @@ class MapWrapperFragment: Fragment() { fun display(positions: Array<Position>, isReport: Boolean, center: Boolean) { if (mapFragment.hasStarted) { - Log.d("UnitReportsFragment", "Displaying positions: $positions") + Log.d("MapWrapperFragment", "Displaying positions: $positions") mapFragment.display( positions.mapNotNull(MarkerTransformations::positionToMarker).toTypedArray(), @@ -115,16 +120,31 @@ class MapWrapperFragment: Fragment() { center = center ) } else { - mapFragment.setupCallbacks.clear() mapFragment.setupCallbacks.add { display(positions, isReport, center) } } } + fun display(units: Array<UnitInformation>, isReport: Boolean, center: Boolean) { + if (mapFragment.hasStarted) { + Log.d("MapWrapperFragment", "Displaying units: $units") + + mapFragment.display( + units.mapNotNull(MarkerTransformations::unitToMarker).toTypedArray(), + isReport = isReport, + center = center + ) + } else { + mapFragment.setupCallbacks.add { + display(units, isReport, center) + } + } + } + fun display(stops: Array<Stop>) { if (mapFragment.hasStarted) { - Log.d("UnitReportsFragment", "Displaying stops: $stops") + Log.d("MapWrapperFragment", "Displaying stops: $stops") mapFragment.display( stops.mapNotNull(MarkerTransformations::stopToMarker).toTypedArray(), @@ -138,9 +158,8 @@ class MapWrapperFragment: Fragment() { } fun display(geofences: Array<Geofence>) { - Log.d("UnitReportsFragment", "Geofences: $geofences") if (mapFragment.hasStarted) { - Log.d("UnitReportsFragment", "Displaying geofences: $geofences") + Log.d("MapWrapperFragment", "Displaying geofences: $geofences") mapFragment.displayGeofences(geofences) } else { mapFragment.setupCallbacks.add { @@ -152,6 +171,7 @@ class MapWrapperFragment: Fragment() { fun updateLayer(layer: MapLayer.Type) { if (mapFragment.hasStarted) { mapFragment.updateLayer(layer) + binding.attributionText.text = MapLayer.layers[layer]?.attribution } else { mapFragment.setupCallbacks.add { updateLayer(layer) |