mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Disabled navigation to satellites fragment on empty database
This commit is contained in:
1 parent
e9dc166e1e
commit
7eb25e45b3
2 files changed
+25
-15
No files matched your search
+13
-1
@@ -19,6 +19,7 @@ package com.rtbishop.look4sat.presentation.passesScreen
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
@@ -72,11 +73,22 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
||||
}
|
||||
passesFilter.setOnClickListener { findNavController().navigate(R.id.nav_pass_prefs) }
|
||||
passesSettings.setOnClickListener { findNavController().navigate(R.id.nav_settings) }
|
||||
passesFab.setOnClickListener { findNavController().navigate(R.id.nav_satellites) }
|
||||
// passesFab.setOnClickListener { findNavController().navigate(R.id.nav_satellites) }
|
||||
}
|
||||
passesViewModel.passes.observe(viewLifecycleOwner) { passesResult ->
|
||||
handleNewPasses(passesResult, adapter, binding)
|
||||
}
|
||||
passesViewModel.satellites.observe(viewLifecycleOwner) { satellites ->
|
||||
satellites?.let {
|
||||
if (satellites.isEmpty()) {
|
||||
binding.passesFab.setOnClickListener {
|
||||
Toast.makeText(requireContext(), "Nothing to show", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
} else {
|
||||
binding.passesFab.setOnClickListener { findNavController().navigate(R.id.nav_satellites) }
|
||||
}
|
||||
}
|
||||
}
|
||||
getNavResult<Pair<Int, Double>>(R.id.nav_passes, "prefs") { prefs ->
|
||||
passesViewModel.saveCalculationPrefs(prefs.first, prefs.second)
|
||||
passesViewModel.forceCalculation(prefs.first, prefs.second)
|
||||
|
||||
+12
-14
@@ -17,10 +17,7 @@
|
||||
*/
|
||||
package com.rtbishop.look4sat.presentation.passesScreen
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.lifecycle.*
|
||||
import com.rtbishop.look4sat.data.ISettingsHandler
|
||||
import com.rtbishop.look4sat.domain.IDataRepository
|
||||
import com.rtbishop.look4sat.domain.model.DataState
|
||||
@@ -32,14 +29,15 @@ import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class PassesViewModel @Inject constructor(
|
||||
private val dataRepository: IDataRepository,
|
||||
private val predictor: Predictor,
|
||||
private val preferences: ISettingsHandler
|
||||
private val settings: ISettingsHandler,
|
||||
private val repository: IDataRepository
|
||||
) : ViewModel() {
|
||||
|
||||
private val _passes = MutableLiveData<DataState<List<SatPass>>>()
|
||||
private var passesProcessing: Job? = null
|
||||
private val _passes = MutableLiveData<DataState<List<SatPass>>>()
|
||||
val passes: LiveData<DataState<List<SatPass>>> = _passes
|
||||
val satellites = repository.getSatelliteItems().asLiveData()
|
||||
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
@@ -51,26 +49,26 @@ class PassesViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
fun forceCalculation(
|
||||
hoursAhead: Int = preferences.getHoursAhead(),
|
||||
minElevation: Double = preferences.getMinElevation(),
|
||||
hoursAhead: Int = settings.getHoursAhead(),
|
||||
minElevation: Double = settings.getMinElevation(),
|
||||
timeRef: Long = System.currentTimeMillis()
|
||||
) {
|
||||
viewModelScope.launch {
|
||||
_passes.postValue(DataState.Loading)
|
||||
passesProcessing?.cancelAndJoin()
|
||||
val satellites = dataRepository.getSelectedSatellites()
|
||||
val stationPos = preferences.loadStationPosition()
|
||||
val satellites = repository.getSelectedSatellites()
|
||||
val stationPos = settings.loadStationPosition()
|
||||
predictor.forceCalculation(satellites, stationPos, timeRef, hoursAhead, minElevation)
|
||||
}
|
||||
}
|
||||
|
||||
fun shouldUseUTC(): Boolean {
|
||||
return preferences.getUseUTC()
|
||||
return settings.getUseUTC()
|
||||
}
|
||||
|
||||
fun saveCalculationPrefs(hoursAhead: Int, minElevation: Double) {
|
||||
preferences.setHoursAhead(hoursAhead)
|
||||
preferences.setMinElevation(minElevation)
|
||||
settings.setHoursAhead(hoursAhead)
|
||||
settings.setMinElevation(minElevation)
|
||||
}
|
||||
|
||||
private suspend fun tickPasses(passes: List<SatPass>) = withContext(Dispatchers.Default) {
|
||||
|
||||
Reference in new issue
Block a user