diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-05-05 21:39:55 -1000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-05-05 21:39:55 -1000 |
| commit | 29fb98a20923b1b04a126ca00a2c21448ed822d5 (patch) | |
| tree | 02c1083a98378bb9ac4db8d9cedc0e9ed1d9bdb9 /android-app/app | |
| parent | 32e510f90442988884a78ff1ec473ebf66facf76 (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/app')
| -rw-r--r-- | android-app/app/src/main/kotlin/org/terst/nav/UnitPrefs.kt | 8 | ||||
| -rw-r--r-- | android-app/app/src/main/kotlin/org/terst/nav/ui/MainViewModel.kt | 2 |
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 } } |
