diff --git a/app/src/main/java/com/rtbishop/look4sat/MainViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/MainViewModel.kt index 18bb274b..5d723c1d 100644 --- a/app/src/main/java/com/rtbishop/look4sat/MainViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/MainViewModel.kt @@ -65,7 +65,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val debugMessage: LiveData = _debugMessage private val _satPassList = MutableLiveData>() - val passSatList: LiveData> = _satPassList + val satPassList: LiveData> = _satPassList private val _gsp = MutableLiveData() val gsp: LiveData = _gsp diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/MapViewFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/MapViewFragment.kt index 97aa860d..8dc93fc2 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/MapViewFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/MapViewFragment.kt @@ -96,7 +96,7 @@ class MapViewFragment : Fragment() { private fun setupComponents() { val delay = viewModel.delay gsp = viewModel.gsp.value ?: GroundStationPosition(0.0, 0.0, 0.0) - satPassList = viewModel.passSatList.value ?: emptyList() + satPassList = viewModel.satPassList.value ?: emptyList() if (satPassList.isNotEmpty()) { satPassList = satPassList.distinctBy { it.tle } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/PassListFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/PassListFragment.kt index 4b8a8800..90af9c99 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/PassListFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/PassListFragment.kt @@ -115,7 +115,7 @@ class PassListFragment : Fragment() { } private fun setupObservers() { - viewModel.passSatList.observe(viewLifecycleOwner, Observer { + viewModel.satPassList.observe(viewLifecycleOwner, Observer { satPassList = it satPassAdapter.setList(satPassList) if (satPassList.isNotEmpty()) { diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/PolarViewFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/PolarViewFragment.kt index f00e1eba..93914837 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/PolarViewFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/PolarViewFragment.kt @@ -82,9 +82,6 @@ class PolarViewFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - val delay = viewModel.delay - satPass = viewModel.passSatList.value!![args.satPassIndex] - mainActivity.supportActionBar?.title = satPass.tle.name polarViewFrame = view.findViewById(R.id.polar_view_frame) transRecycler = view.findViewById(R.id.polar_recycler) @@ -94,11 +91,22 @@ class PolarViewFragment : Fragment() { polarAltitude = view.findViewById(R.id.polar_altitude) noTransFound = view.findViewById(R.id.polar_no_trans) - polarView = PolarView(mainActivity, delay) - polarViewFrame.addView(polarView) - service.scheduleAtFixedRate({ polarView.invalidate() }, delay, delay, TimeUnit.MILLISECONDS) + viewModel.satPassList.value?.let { + val refreshRate = viewModel.delay + satPass = it[args.satPassIndex] + mainActivity.supportActionBar?.title = satPass.tle.name - setupTransRecycler() + polarView = PolarView(mainActivity, refreshRate) + polarViewFrame.addView(polarView) + service.scheduleAtFixedRate( + { polarView.invalidate() }, + refreshRate, + refreshRate, + TimeUnit.MILLISECONDS + ) + + setupTransRecycler() + } } private fun setupTransRecycler() { diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt index b6a552f5..792d43f8 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt @@ -136,9 +136,11 @@ class SatPassAdapter(val viewModel: MainViewModel) : progressBar.progress = satPass.progress itemView.setOnClickListener { - val satPassIndex = viewModel.passSatList.value!!.indexOf(satPass) - val action = PassListFragmentDirections.actionPassToPolar(satPassIndex) - it.findNavController().navigate(action) + viewModel.satPassList.value?.let { + val satPassIndex = it.indexOf(satPass) + val action = PassListFragmentDirections.actionPassToPolar(satPassIndex) + itemView.findNavController().navigate(action) + } } } } @@ -162,9 +164,11 @@ class SatPassAdapter(val viewModel: MainViewModel) : String.format(context.getString(R.string.pat_elevation), satPass.pass.maxEl) itemView.setOnClickListener { - val satPassIndex = viewModel.passSatList.value!!.indexOf(satPass) - val action = PassListFragmentDirections.actionPassToPolar(satPassIndex) - it.findNavController().navigate(action) + viewModel.satPassList.value?.let { + val satPassIndex = it.indexOf(satPass) + val action = PassListFragmentDirections.actionPassToPolar(satPassIndex) + itemView.findNavController().navigate(action) + } } } }