From 8ef0d103e4aa2bc9924a7141622af0dbca22e06f Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Wed, 27 Oct 2021 19:31:58 +0100 Subject: [PATCH] Added ability to toggle from pass view to map view #68 --- .../presentation/mapScreen/MapFragment.kt | 1 + .../presentation/mapScreen/MapViewModel.kt | 26 +++++++++++-------- .../presentation/radarScreen/RadarFragment.kt | 7 ++++- app/src/main/res/layout/fragment_radar.xml | 18 +++++++++++-- app/src/main/res/navigation/nav_graph.xml | 7 +++++ 5 files changed, 45 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt index a79c0a96..5338254c 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt @@ -88,6 +88,7 @@ class MapFragment : Fragment(R.layout.fragment_map) { } private fun setupObservers(binding: FragmentMapBinding) { + viewModel.selectDefaultSatellite(arguments?.getInt("catNum")) viewModel.stationPosLiveData.observe(viewLifecycleOwner, { renderStationPos(it, binding) }) viewModel.satPositions.observe(viewLifecycleOwner, { renderSatPositions(it, binding) }) viewModel.satTrack.observe(viewLifecycleOwner, { renderSatTrack(it, binding) }) diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt index 6de82a3d..e7cea42b 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt @@ -61,17 +61,6 @@ class MapViewModel @Inject constructor( private val _satPositions = MutableLiveData>() val satPositions: LiveData> = _satPositions - init { - viewModelScope.launch { - dataRepository.getSelectedSatellites().also { selectedSatellites -> - if (selectedSatellites.isNotEmpty()) { - allSatList = selectedSatellites - selectSatellite(selectedSatellites.first()) - } - } - } - } - fun shouldUseTextLabels(): Boolean { return preferences.shouldUseTextLabels() } @@ -89,6 +78,21 @@ class MapViewModel @Inject constructor( } } + fun selectDefaultSatellite(catnum: Int?) { + viewModelScope.launch { + dataRepository.getSelectedSatellites().also { satellites -> + if (satellites.isNotEmpty()) { + allSatList = satellites + if (catnum == null) { + selectSatellite(satellites.first()) + } else { + satellites.find { it.params.catnum == catnum }?.let { selectSatellite(it) } + } + } + } + } + } + fun selectSatellite(satellite: Satellite, updateFreq: Long = 2000) { selectedSat = satellite viewModelScope.launch { diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt index 51c6ab2c..757faaa5 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt @@ -19,6 +19,7 @@ package com.rtbishop.look4sat.presentation.radarScreen import android.os.Bundle import android.view.View +import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController @@ -104,9 +105,13 @@ class RadarFragment : Fragment(R.layout.fragment_radar) { orientation.third ) }) + binding.radarToMapButton.setOnClickListener { + val bundle = bundleOf("catNum" to pass.catNum) + findNavController().navigateSafe(R.id.action_radar_to_map, bundle) + } } -// binding.addNotificationButton.setOnClickListener { +// binding.radarNotifyButton.setOnClickListener { // this.context?.let { context -> // // val choicesList = arrayOf( diff --git a/app/src/main/res/layout/fragment_radar.xml b/app/src/main/res/layout/fragment_radar.xml index 9365f6b2..83343eac 100644 --- a/app/src/main/res/layout/fragment_radar.xml +++ b/app/src/main/res/layout/fragment_radar.xml @@ -77,7 +77,7 @@ app:layout_constraintEnd_toEndOf="@+id/radar_frame" /> + + +