M7d: feature settle, S-9 settle up and S-10 settlement detail

SettleScreen (global, per account, editing) and SettlementDetailScreen with
Hilt ViewModels over the :core:model interfaces; proposals, remaining,
warnings and enablement come from SettlementRepository. Fake scenarios in
fakes/settle/, 19 states x sv/en x light/dark goldens (+ 200 % for long),
unit tests for amount input and both state holders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
This commit is contained in:
2026-10-18 10:44:43 +02:00
parent ea7d494ffa
commit 7380e50ae3
16 changed files with 2002 additions and 14 deletions
+19
View File
@@ -1,4 +1,23 @@
// :feature:settle — Settle up and settlement detail (S-9, S-10; M7d). Convention: android/README.md.
// Depends on :core:model and :core:design (added by the feature plugin); :core:fakes only for debug and tests.
plugins {
id("kvitt.android.feature")
alias(libs.plugins.roborazzi)
}
roborazzi {
outputDir.set(file("src/test/screenshots"))
}
dependencies {
// BackHandler: system back with unsaved changes asks "Slänga ändringarna?" (design-spec S-9).
implementation(libs.androidx.activity.compose)
debugImplementation(libs.androidx.compose.ui.test.manifest)
testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.androidx.compose.ui.test.junit4)
testImplementation(libs.robolectric)
testImplementation(libs.roborazzi)
testImplementation(libs.roborazzi.compose)
testImplementation(libs.roborazzi.junit.rule)
}