summaryrefslogtreecommitdiff
path: root/android-app
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-05-05 21:39:55 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-05-05 21:39:55 -1000
commit29fb98a20923b1b04a126ca00a2c21448ed822d5 (patch)
tree02c1083a98378bb9ac4db8d9cedc0e9ed1d9bdb9 /android-app
parent32e510f90442988884a78ff1ec473ebf66facf76 (diff)
fix: remove crash-risk !! operators in UnitPrefs and MainViewModel
UnitPrefs: getString() returns String? even with a non-null default, so !! crashes on corrupted prefs. Replaced with explicit elvis fallback to the same enum default. MainViewModel: forecastResult.getOrThrow() is logically safe (when-branch guards it) but unnecessarily brittle. Replaced with getOrNull() ?: emptyList(). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'android-app')
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/UnitPrefs.kt8
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt2
2 files changed, 5 insertions, 5 deletions
diff --git a/android-app/app/src/main/kotlin/org/terst/nav/UnitPrefs.kt b/android-app/app/src/main/kotlin/org/terst/nav/UnitPrefs.kt
index 8d60ae0..c0745f8 100644
--- a/android-app/app/src/main/kotlin/org/terst/nav/UnitPrefs.kt
+++ b/android-app/app/src/main/kotlin/org/terst/nav/UnitPrefs.kt
@@ -17,19 +17,19 @@ class UnitPrefs(context: Context) {
private val prefs = context.getSharedPreferences("unit_prefs", Context.MODE_PRIVATE)
var tempUnit: TempUnit
- get() = TempUnit.valueOf(prefs.getString(KEY_TEMP, TempUnit.FAHRENHEIT.name)!!)
+ get() = TempUnit.valueOf(prefs.getString(KEY_TEMP, null) ?: TempUnit.FAHRENHEIT.name)
set(v) { prefs.edit().putString(KEY_TEMP, v.name).apply() }
var depthUnit: DepthUnit
- get() = DepthUnit.valueOf(prefs.getString(KEY_DEPTH, DepthUnit.FEET.name)!!)
+ get() = DepthUnit.valueOf(prefs.getString(KEY_DEPTH, null) ?: DepthUnit.FEET.name)
set(v) { prefs.edit().putString(KEY_DEPTH, v.name).apply() }
var pressureUnit: PressureUnit
- get() = PressureUnit.valueOf(prefs.getString(KEY_PRESSURE, PressureUnit.HPA.name)!!)
+ get() = PressureUnit.valueOf(prefs.getString(KEY_PRESSURE, null) ?: PressureUnit.HPA.name)
set(v) { prefs.edit().putString(KEY_PRESSURE, v.name).apply() }
var speedUnit: SpeedUnit
- get() = SpeedUnit.valueOf(prefs.getString(KEY_SPEED, SpeedUnit.KNOTS.name)!!)
+ get() = SpeedUnit.valueOf(prefs.getString(KEY_SPEED, null) ?: SpeedUnit.KNOTS.name)
set(v) { prefs.edit().putString(KEY_SPEED, v.name).apply() }
fun formatTemp(tempC: Double): String = when (tempUnit) {
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 57de608..c648fab 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
@@ -315,7 +315,7 @@ class MainViewModel(
}
else -> {
_windArrow.value = arrowResult.getOrNull()
- _forecast.value = forecastResult.getOrThrow()
+ _forecast.value = forecastResult.getOrNull() ?: emptyList()
_uiState.value = UiState.Success
}
}