Release v2026.05.08.1 — DRY pass + cover-art HTTP base #31

Merged
bvandeusen merged 262 commits from dev into main 2026-05-08 13:45:44 -04:00
Showing only changes of commit b1bcfe7fa3 - Show all commits
@@ -39,13 +39,16 @@ class PasswordViewModel @Inject constructor(
fun change() { fun change() {
val s = internal.value val s = internal.value
if (s.isChanging) return val validationError: String? = when {
if (s.current.isEmpty() || s.next.isEmpty()) { s.isChanging -> "" // sentinel: silent no-op
internal.update { it.copy(message = "All fields required.") } s.current.isEmpty() || s.next.isEmpty() -> "All fields required."
return s.next != s.confirm -> "New passwords do not match."
else -> null
} }
if (s.next != s.confirm) { if (validationError != null) {
internal.update { it.copy(message = "New passwords do not match.") } if (validationError.isNotEmpty()) {
internal.update { it.copy(message = validationError) }
}
return return
} }
viewModelScope.launch { viewModelScope.launch {