From 0ba26d4d75bbe03c5b36e664e5eda10998e889f2 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sun, 4 Oct 2020 14:49:47 +0100 Subject: [PATCH] Now triggering passes calculation on PassesFragment start --- .../com/rtbishop/look4sat/ui/SharedViewModel.kt | 17 +++++++++++++---- .../look4sat/ui/fragments/PassesFragment.kt | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt index 857b18bb..d0d9e2f4 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt @@ -46,6 +46,7 @@ class SharedViewModel @Inject constructor( private val _passes = MutableLiveData>>() private var selectedEntries = emptyList() + private var shouldTriggerCalculation = true init { if (prefsManager.isFirstLaunch()) { @@ -53,15 +54,22 @@ class SharedViewModel @Inject constructor( } } - fun setSelectedEntries(entries: List) { - selectedEntries = entries.filter { it.isSelected } - } - fun getSources() = repository.getSources() fun getEntries() = repository.getEntries() fun getPasses(): LiveData>> = _passes fun getTransmittersForSat(satId: Int) = repository.getTransmittersForSat(satId) + fun triggerCalculation() { + if (shouldTriggerCalculation) { + shouldTriggerCalculation = false + calculatePasses() + } + } + + fun setSelectedEntries(entries: List) { + selectedEntries = entries.filter { it.isSelected } + } + fun updateEntriesFromFile(uri: Uri) { viewModelScope.launch { repository.updateEntriesFromFile(uri) @@ -85,6 +93,7 @@ class SharedViewModel @Inject constructor( } fun calculatePasses(dateNow: Date = Date(System.currentTimeMillis())) { + shouldTriggerCalculation = false _passes.value = Result.InProgress viewModelScope.launch(Dispatchers.Default) { val passes = mutableListOf() diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassesFragment.kt index 03fe8661..8cc10dc2 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassesFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassesFragment.kt @@ -106,6 +106,7 @@ class PassesFragment : Fragment(R.layout.fragment_passes) { } passesAdapter.setShouldUseUTC(prefsManager.shouldUseUTC()) setTimerForPasses(passes) + viewModel.triggerCalculation() } private fun showSatPassPrefsDialog(hoursAhead: Int, minEl: Double) {