fix(#41,#42,#43): numeric amount input, clickable DateField, search-based category picker #47
Reference in New Issue
Block a user
Delete Branch "fix/41-42-43-form-input-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
setAmountin both Add/Edit ScreenModels now pipes through a newString.sanitizeAmountInput()(digits + at most one.), soKeyboardType.Decimalcan no longer be bypassed via paste or hardware keys.DateFieldis wrapped in aBox.clickable; the entire row (label, text, icon) opens the date picker. InnerOutlinedTextFieldstaysreadOnly = true; the trailingIconButtonis replaced with a plainIconsince the Box now owns the click. Both Add/Edit screens get the fix for free.CategoryDropdownFieldis replaced by a newCategoryPickerFieldthat opens a new genericListSearchDialog(search bar, scrollable list, leading color swatch, trailing checkmark on the selected row). The dialog mirrors theListSearchPreferenceWidgetUX but is decoupled from thePreferencemachinery.ListSearchPreferenceWidgetis unchanged.Test plan
./gradlew assembleDebug— BUILD SUCCESSFUL./gradlew :app:testDebugUnitTest— BUILD SUCCESSFUL./gradlew :app:lintDebug— no new errors in changed files (only pre-existingLocalContextGetResourceValueCallinExpenseListScreen.kt:124).land in stateCloses #41, Closes #42, Closes #43