diff options
Diffstat (limited to 'android-app/app/src')
| -rw-r--r-- | android-app/app/src/main/kotlin/org/terst/nav/track/TrackRepository.kt | 6 | ||||
| -rw-r--r-- | android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt | 20 |
2 files changed, 20 insertions, 6 deletions
diff --git a/android-app/app/src/main/kotlin/org/terst/nav/track/TrackRepository.kt b/android-app/app/src/main/kotlin/org/terst/nav/track/TrackRepository.kt index 0cc098b..0bf1dff 100644 --- a/android-app/app/src/main/kotlin/org/terst/nav/track/TrackRepository.kt +++ b/android-app/app/src/main/kotlin/org/terst/nav/track/TrackRepository.kt @@ -148,7 +148,11 @@ class TrackRepository(context: Context) { suspend fun getSavedTracks(): List<SavedTrack> = getPastTracks() .filter { it.isNotEmpty() } - .map { it.toSavedTrack() } + .mapNotNull { points -> + runCatching { points.toSavedTrack() } + .onFailure { e -> NavLogger.e("track", "toSavedTrack failed: ${e.javaClass.simpleName}: ${e.message}") } + .getOrNull() + } fun safState(): SafState = storage.safState() diff --git a/android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt b/android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt index 01cec43..3d022e8 100644 --- a/android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt +++ b/android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt @@ -103,7 +103,9 @@ class MainViewModel( runCatching { trackRepository.getPastTracks() } .onSuccess { _pastTracks.value = it - _savedTracks.value = trackRepository.getSavedTracks() + runCatching { trackRepository.getSavedTracks() } + .onSuccess { saved -> _savedTracks.value = saved } + .onFailure { e -> NavLogger.e("track", "init: getSavedTracks failed: ${e.javaClass.simpleName}: ${e.message}") } } .onFailure { e -> NavLogger.e("track", "init: failed to load past tracks: ${e.javaClass.simpleName}: ${e.message}") } } @@ -167,7 +169,9 @@ class MainViewModel( viewModelScope.launch { val summary = trackRepository.stopTrack() _pastTracks.value = trackRepository.getPastTracks() - _savedTracks.value = trackRepository.getSavedTracks() + runCatching { trackRepository.getSavedTracks() } + .onSuccess { _savedTracks.value = it } + .onFailure { e -> NavLogger.e("track", "stopTrack: getSavedTracks failed: ${e.javaClass.simpleName}: ${e.message}") } _trackPoints.value = emptyList() _isRecording.value = false _trackStats.value = null @@ -184,7 +188,9 @@ class MainViewModel( points.forEach { trackRepository.addPoint(it) } val summary = trackRepository.stopTrack() _pastTracks.value = trackRepository.getPastTracks() - _savedTracks.value = trackRepository.getSavedTracks() + runCatching { trackRepository.getSavedTracks() } + .onSuccess { _savedTracks.value = it } + .onFailure { e -> NavLogger.e("track", "injectTestTrack: getSavedTracks failed: ${e.javaClass.simpleName}: ${e.message}") } _trackPoints.value = emptyList() _isRecording.value = false _trackStats.value = null @@ -426,7 +432,9 @@ class MainViewModel( viewModelScope.launch { trackRepository.importTrack(points) _pastTracks.value = trackRepository.getPastTracks() - _savedTracks.value = trackRepository.getSavedTracks() + runCatching { trackRepository.getSavedTracks() } + .onSuccess { _savedTracks.value = it } + .onFailure { e -> NavLogger.e("track", "addImportedTrack: getSavedTracks failed: ${e.javaClass.simpleName}: ${e.message}") } } } @@ -440,7 +448,9 @@ class MainViewModel( runCatching { trackRepository.reloadTracks() } .onSuccess { tracks -> _pastTracks.value = tracks - _savedTracks.value = trackRepository.getSavedTracks() + runCatching { trackRepository.getSavedTracks() } + .onSuccess { saved -> _savedTracks.value = saved } + .onFailure { e -> NavLogger.e("track", "reloadPastTracks: getSavedTracks failed: ${e.javaClass.simpleName}: ${e.message}") } NavLogger.i("track", "reloadPastTracks: ${tracks.size} tracks loaded") } .onFailure { e -> |
