aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt89
1 files changed, 15 insertions, 74 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt
index e1a24ec..51d2f6d 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/details/reports/UnitReportsFragment.kt
@@ -21,12 +21,8 @@ import kotlinx.coroutines.DelicateCoroutinesApi
import mx.trackermap.TrackerMap.android.R
import mx.trackermap.TrackerMap.android.databinding.UnitDetailsReportsBinding
import mx.trackermap.TrackerMap.android.details.UnitDetailsAdapter
-import mx.trackermap.TrackerMap.android.map.MapFragment
-import mx.trackermap.TrackerMap.android.shared.MarkerTransformations
+import mx.trackermap.TrackerMap.android.map.MapWrapperFragment
import mx.trackermap.TrackerMap.client.models.EventInformation
-import mx.trackermap.TrackerMap.client.models.Geofence
-import mx.trackermap.TrackerMap.client.models.Position
-import mx.trackermap.TrackerMap.client.models.Stop
import mx.trackermap.TrackerMap.controllers.ReportController
import mx.trackermap.TrackerMap.utils.Formatter
import mx.trackermap.TrackerMap.utils.ReportDates
@@ -43,7 +39,7 @@ class UnitReportsFragment : Fragment() {
private val binding get() = _binding!!
private val unitReportsViewModel: UnitReportsViewModel by viewModel()
- private lateinit var reportsMapFragment: MapFragment
+ private lateinit var mapFragment: MapWrapperFragment
override fun onCreateView(
inflater: LayoutInflater,
@@ -60,12 +56,12 @@ class UnitReportsFragment : Fragment() {
unitReportsViewModel.setDeviceId(
arguments?.getInt(UnitDetailsAdapter.DEVICE_ID_ARG) ?: 0)
setupEvents()
+ initializeMap()
}
override fun onResume() {
super.onResume()
- initializeMap()
setupObservers()
}
@@ -73,7 +69,6 @@ class UnitReportsFragment : Fragment() {
super.onPause()
removeObservers()
- removeMap()
if (unitReportsViewModel.report.value == null) {
unitReportsViewModel.fetchReport()
@@ -87,16 +82,11 @@ class UnitReportsFragment : Fragment() {
private fun initializeMap() {
Log.d("UnitReportsFragment", "initializeMap()")
- reportsMapFragment = MapFragment()
- childFragmentManager.commit {
- replace(R.id.reportsMapContainer, reportsMapFragment)
- }
- }
-
- private fun removeMap() {
- Log.d("UnitReportsFragment", "removeMap()")
+ mapFragment = MapWrapperFragment.newInstance(
+ showLayerToggle = true
+ )
childFragmentManager.commit {
- remove(reportsMapFragment)
+ replace(R.id.reportsMapContainer, mapFragment)
}
}
@@ -127,8 +117,8 @@ class UnitReportsFragment : Fragment() {
when (report) {
is ReportController.Report.PositionsReport -> {
- display(report.positions)
- display(unitReportsViewModel.geofences.value!!)
+ mapFragment.display(unitReportsViewModel.geofences.value!!)
+ mapFragment.display(report.positions, isReport = true, center = true)
showMap(true)
}
is ReportController.Report.EventsReport -> {
@@ -136,8 +126,8 @@ class UnitReportsFragment : Fragment() {
showMap(false)
}
is ReportController.Report.StopsReport -> {
- display(report.stops)
- display(unitReportsViewModel.geofences.value!!)
+ mapFragment.display(unitReportsViewModel.geofences.value!!)
+ mapFragment.display(report.stops)
showMap(true)
}
is ReportController.Report.XlsxReport -> {
@@ -167,7 +157,7 @@ class UnitReportsFragment : Fragment() {
}
unitReportsViewModel.geofences.observe(viewLifecycleOwner) { geofences ->
- display(geofences)
+ mapFragment.display(geofences)
}
}
@@ -199,25 +189,6 @@ class UnitReportsFragment : Fragment() {
popOver.show()
}
- private fun display(positions: Array<Position>) {
- if (reportsMapFragment.hasStarted) {
- Log.d("UnitReportsFragment", "Displaying positions: $positions")
-
- binding.eventsScroll.visibility = View.GONE
- binding.reportsMapContainer.visibility = View.VISIBLE
-
- reportsMapFragment.display(
- positions.mapNotNull(MarkerTransformations::positionToMarker).toTypedArray(),
- isReport = true
- )
- } else {
- reportsMapFragment.setupCallbacks.clear()
- reportsMapFragment.setupCallbacks.add {
- display(positions)
- }
- }
- }
-
private fun display(events: Array<EventInformation>) {
Log.d("UnitReportsFragment", "Displaying events: $events")
@@ -284,43 +255,13 @@ class UnitReportsFragment : Fragment() {
}
}
- private fun display(stops: Array<Stop>) {
- if (reportsMapFragment.hasStarted) {
- Log.d("UnitReportsFragment", "Displaying stops: $stops")
-
- binding.eventsScroll.visibility = View.GONE
- binding.reportsMapContainer.visibility = View.VISIBLE
-
- reportsMapFragment.display(
- stops.mapNotNull(MarkerTransformations::stopToMarker).toTypedArray(),
- isReport = true
- )
- } else {
- reportsMapFragment.setupCallbacks.add {
- display(stops)
- }
- }
- }
-
- private fun display(geofences: Array<Geofence>) {
- Log.d("UnitReportsFragment", "Geofences: $geofences")
- if (reportsMapFragment.hasStarted) {
- Log.d("UnitReportsFragment", "Displaying geofences: $geofences")
- reportsMapFragment.displayGeofences(geofences)
- } else {
- reportsMapFragment.setupCallbacks.add {
- display(geofences)
- }
- }
- }
-
private fun loading() {
binding.reportLoading.root.visibility = View.VISIBLE
binding.eventsScroll.visibility = View.GONE
binding.reportsMapContainer.visibility = View.GONE
childFragmentManager.commit {
- hide(reportsMapFragment)
+ hide(mapFragment)
}
}
@@ -332,9 +273,9 @@ class UnitReportsFragment : Fragment() {
childFragmentManager.commit {
if (shouldShowMap) {
- show(reportsMapFragment)
+ show(mapFragment)
} else {
- hide(reportsMapFragment)
+ hide(mapFragment)
}
}
}