4.8 KiB
4.8 KiB
SacsMobileMaui Component Review Register
<style> table th, table td { vertical-align: top; } </style>Last updated: 2026-10-06
| Component | Scope | Status | Date reviewed | Next steps | Notes |
|---|---|---|---|---|---|
SacsMobileMaui |
Project and project documentation review | .NET 10 migration complete; follow-up required | 2026-09-17 | Validate Apple targets on a Mac, then address the compatibility APIs, handler registration, and focused tests recorded in topics.md. |
Reviewed the MAUI project README, topic tracker, component register, and shared Common trackers. The project and both active consumers target .NET 10 with MAUI 10.0.20. Windows runtime smoke tests pass, and Windows and Android Debug builds complete with zero errors against Common’s final .NET 10-only libraries. Async/dialog implementation and date-picker behavior are implemented; compatibility APIs, handler registration, and resource-stream tests remain. |
Maui/Utils/SamThreadUtil.cs, Maui/Utils/SamFormUtil.cs, Maui/Pages/SamContentPage.cs, SacsMobileMauiTests, SacsMobileMauiTestHost |
Async UI-thread dispatch and dialogs | Common behavior implemented and host-tested | 2026-10-06 | Resolve the separately scoped Sandtrap API call-site and Apple runtime-pack build failures before claiming consumer compatibility. | All six dispatcher tests and all three interactive dialog tests pass in the Windows MAUI host; all four non-interactive NUnit tests pass. The host builds with zero warnings/errors. Sandtrap's build check exposed removed-API call sites and Apple-target runtime-pack errors; no consumer files were changed. |
Maui/Controls/SamDatePicker.cs, SamDatePicker_Tester |
AllowInvalid transitions, date display, and reset behavior |
Implemented and host-verified | 2026-10-06 | Retain the host test for future date-picker changes. | The Date setter now refreshes the formatted entry/reset display after changing state. The explicit host test verifies both mode transitions, valid-date display, invalid-date clearing, reset visibility, and restoration of the native picker date when invalid values are disabled; the user confirmed it passes. |
Maui/App/Sam.cs |
Shared MAUI configuration and visual defaults | Retained and clarified | 2026-09-29 | Classify remaining unused settings and decide whether localisation and font defaults should be wired into consumers. | Preserved all public settings, documented the startup/default configuration semantics, and made the remaining item-list visual fields consistent properties. |
Maui/Logic/SamEntryTextFormatter.cs, SamEntryTextFormatOptions.cs, SamPickerItemCollection.cs, SamDateValueState.cs, SamViewTreeUtil.cs |
Reusable control logic extraction | Implemented and covered where platform-independent | 2026-09-29 | Use these seams when adding further Sam* controls; add MAUI-host tests for visual-tree behavior. |
SamEntry, SamPicker, SamDatePicker, and SamContentPage now delegate reusable formatting, item, date-state, and child-view traversal behavior. SamEntryTextFormatter receives an immutable formatting-options snapshot rather than positional settings. Four ordinary NUnit tests pass without a MAUI host. |
Maui/Controls/* and Maui/Controls/Panels/* |
MAUI control coverage and consistency review | Activity contracts separated for controls and composite views | 2026-10-06 | Add MAUI-host tests, assess BindableProperty support, and review the remaining platform-specific handler branches and no-op overrides. |
Added the single-method ISamControl contract for leaf controls. SamViewTreeUtil now applies activity to child ISamControl and ISamView elements; ISamView remains the contract for composite views and layout configuration. Earlier work removed the SamControlPanel constructor’s virtual call, simplified redundant panel lifecycle overrides, corrected SamLabel proportional font handling, added ISamNativeControlStyle, and improved SamWebView, SamTabControl, SamDateTimePicker, and SamPicker. |
Maui/Handlers/SamFormHandler.cs, Maui/Controls/ISamNativeControlStyle.cs |
Native form-control handler mappings | Platform behavior clarified; registration still unverified | 2026-10-06 | Verify or add the startup call to SamFormHandler.AssignControlHandlers(); then host-test mapping behavior and visually check transparent backgrounds and borders. Consider bindable properties only if styling must change after handler creation. |
All mappings guard with ISamNativeControlStyle. Windows background clearing now uses a transparent brush. NativeNoUnderline intentionally has no iOS/macOS or Windows implementation because those controls expose a full border rather than the Android-style underline; NativeNoBorder removes that border. A Common-project search found the registration method definition but no call site, so mapping activation is not yet established. |