diff options
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.kt | 89 |
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) } } } |