Further fixes to strings and PassesFragment's ui

This commit is contained in:
Arty Bishop committed 2022-02-21 18:45:41 +00:00
1 parent 00549bbcba
commit 6189fb497e
7 files changed
+26 -33

No files matched your search

@@ -69,7 +69,6 @@ class PassesAdapter(private val isUTC: Boolean, private val clickListener: Passe
private val losAzFormat = itemView.context.getString(R.string.pass_los)
private val startTimeFormat = itemView.context.getString(R.string.pass_startTime)
private val elevFormat = itemView.context.getString(R.string.pat_elevation)
private val maxElFormat = itemView.context.getString(R.string.pass_elevation)
private val endTimeFormat = itemView.context.getString(R.string.pass_endTime)
private val placeholder = itemView.context.getString(R.string.pass_placeholder)
private val timeZoneUTC = TimeZone.getTimeZone("UTC")
@@ -99,7 +98,7 @@ class PassesAdapter(private val isUTC: Boolean, private val clickListener: Passe
passAltitude.text = String.format(altFormat, satPass.altitude)
passLos.text = String.format(losAzFormat, satPass.losAzimuth)
passStart.text = startFormat.format(Date(satPass.aosTime))
passElev.text = String.format(maxElFormat, satPass.maxElevation)
passElev.text = String.format(elevFormat, satPass.maxElevation)
passEnd.text = endFormat.format(Date(satPass.losTime))
passProgress.progress = satPass.progress
}
@@ -69,7 +69,7 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
}
})
}
passesRefreshBtn.setOnClickListener { refreshPasses() }
passesRefreshBtn.setOnClickListener { viewModel.calculatePasses() }
passesMapBtn.setOnClickListener { navigateToMap() }
passesFilterBtn.setOnClickListener { navigateToFilter() }
passesFab.setOnClickListener { navigateToEntries() }
@@ -87,10 +87,10 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
handleEntriesNumber(number)
}
getNavResult<Pair<Int, Double>>(R.id.nav_passes, "prefs") { prefs ->
viewModel.forceCalculation(prefs.first, prefs.second)
viewModel.calculatePasses(prefs.first, prefs.second)
}
getNavResult<List<Int>>(R.id.nav_passes, "selection") { selection ->
viewModel.saveSelectionAndRecalc(selection)
getNavResult<List<Int>>(R.id.nav_passes, "selection") { items ->
viewModel.calculatePasses(selection = items)
}
}
@@ -98,18 +98,17 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
refreshAnimator = ValueAnimator.ofFloat(0f, -360f).apply {
duration = 875
interpolator = LinearInterpolator()
repeatMode = ValueAnimator.RESTART
repeatCount = ValueAnimator.INFINITE
addUpdateListener { anim ->
binding.passesRefreshBtn.rotation = anim.animatedValue as Float
}
addUpdateListener { binding.passesRefreshBtn.rotation = animatedValue as Float }
}
}
private fun handleEntriesNumber(number: Int?) {
number?.let { num ->
if (num == 0) binding.passesFab.setOnClickListener { requireContext().toast("0") }
else binding.passesFab.setOnClickListener { navigateToEntries() }
private fun handleEntriesNumber(number: Int) {
if (number > 0) {
binding.passesFab.setOnClickListener { navigateToEntries() }
} else {
val errorMessage = getString(R.string.passes_empty_db)
binding.passesFab.setOnClickListener { requireContext().toast(errorMessage) }
}
}
@@ -163,10 +162,6 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
}
}
private fun refreshPasses() {
viewModel.forceCalculation()
}
private fun navigateToMap() {
val direction = PassesFragmentDirections.actionGlobalMapFragment()
findNavController().navigate(direction)
@@ -57,21 +57,17 @@ class PassesViewModel @Inject constructor(
fun shouldUseUTC() = settings.getUseUTC()
fun saveSelectionAndRecalc(selection: List<Int>) {
viewModelScope.launch {
repository.setEntriesSelection(selection)
forceCalculation()
}
}
fun forceCalculation(
fun calculatePasses(
hoursAhead: Int = settings.getHoursAhead(),
minElevation: Double = settings.getMinElevation(),
timeRef: Long = System.currentTimeMillis()
timeRef: Long = System.currentTimeMillis(),
selection: List<Int>? = null
) {
viewModelScope.launch {
_passes.postValue(DataState.Loading)
passesProcessing?.cancelAndJoin()
delay(3000)
selection?.let { items -> repository.setEntriesSelection(items) }
settings.setHoursAhead(hoursAhead)
settings.setMinElevation(minElevation)
val satellites = repository.getSelectedEntries()