summaryrefslogtreecommitdiff
path: root/android-app/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'android-app/app/src')
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/track/TrackRepository.kt6
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt20
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 ->