4.5 KiB
4.5 KiB
SacsMobileMaui Topic Tracker
<style> table th, table td { vertical-align: top; } </style>Last updated: 2026-09-11
Prioritised Topics to Be Actioned
| Priority | Topic | Date noted | Next step | Notes |
|---|---|---|---|---|
| P2 | Replace obsolete MAUI compatibility APIs | 2026-09-10 | Replace compatibility layouts, Frame, MainPage, synchronous popup calls, and deprecated expansion options; then remove Microsoft.Maui.Controls.Compatibility. |
The .NET 10 Windows and Android builds succeed, but retain compatibility references and report the existing API-obsolescence warnings. |
| P1 | Make SamThreadUtil and form dialogs genuinely asynchronous and deadlock-safe |
2026-09-10 | Replace synchronous UI-thread bridges with Task-returning APIs, update the Sandtrap caller, and add focused tests. |
The void InvokeOnMainThreadSync overload never waits; the generic overload and DisplayConfirmSync block on Task.Result and can deadlock on the UI thread. DisplayAlertSync also passes an async lambda to Action, producing async void behavior. |
| P2 | Correct MAUI native handler type checks | 2026-09-10 | Use SamEditor in editor mappings and SamPicker in picker mappings; validate each platform-specific option. |
Several editor and every picker option currently cast to the wrong custom control type, so configured native styling is silently skipped. |
| P2 | Fix SamDatePicker.AllowInvalid state transition |
2026-09-10 | Change the assignment in the equality guard, verify both transitions, and add tests for display and reset behavior. | Setting AllowInvalid to true returns before refreshing the control; the guard uses allowInvalidDate = value. |
| P3 | Remove unused resource-stream enumeration | 2026-09-10 | Return null immediately after a failed named lookup or implement an intentional lookup strategy that disposes rejected streams. |
GetResourceStream opens every manifest resource, discards each stream, and returns null. |
.NET 10 Dependencies and Sequence
| Work item | Depends on | Unblocks |
|---|---|---|
| Establish Sandtrap and Sandalwood source control | Confirmation of the authoritative repositories or tracking workflow | Safe coordinated edits and review of consumer migration changes |
| Repair MAUI workloads and capture baseline | Consumer source-control decision; supported current SDK/workloads | Reliable distinction between environment, existing-source, and migration failures |
| Replace compatibility and obsolete APIs | Baseline evidence | Removal of Microsoft.Maui.Controls.Compatibility and clean MAUI 10 compilation |
Retarget SacsMobileMaui, Sandtrap, and Sandalwood together |
Compatibility cleanup; aligned package plan; tracked consumer workspaces | Windows and Android MAUI 10 validation |
| Validate Apple targets | Retargeted projects; compatible Mac and Xcode | Completion of the cross-platform migration |
| Address remaining behavioral defects | Stable MAUI 10 baseline; UI-thread defect may move earlier if it blocks testing | Reliable application behavior and focused regression tests |
In-Progress Topics
| Priority | Topic | Date noted | Date started | Next step | Notes |
|---|
Completed Topics
| Topic | Date noted | Date started | Date completed | Outcome |
|---|---|---|---|---|
| Establish authoritative source control for Sandtrap and Sandalwood | 2026-09-10 | 2026-09-10 | 2026-09-10 | Separate repositories were initialized, given baseline guidance and tracking files, committed, and pushed to their remotes. |
| Repair the MAUI workload and validate local targets | 2026-09-10 | 2026-09-11 | 2026-09-11 | SDK 10.0.401 reports coherent .NET 10 Android, iOS, Mac Catalyst, and MAUI Windows workloads. The upgraded shared project restores and builds successfully for Windows and Android; Apple builds still require compatible Mac/Xcode validation. |
Upgrade SacsMobileMaui to .NET MAUI 10 |
2026-09-10 | 2026-09-11 | 2026-09-11 | Retargeted Android, iOS, Mac Catalyst, and Windows to .NET 10; aligned MAUI packages to 10.0.20; and adapted date/time controls to MAUI 10 nullable picker values. Windows and Android Debug builds complete with zero errors. |
| Upgrade Sandtrap and Sandalwood to .NET MAUI 10 | 2026-09-10 | 2026-09-11 | 2026-09-11 | Both applications now target .NET 10 with MAUI 10.0.20. Windows runtime smoke tests pass, and Windows and Android Debug builds complete with zero errors against the final Common .NET 10-only libraries. Apple validation remains separately tracked in each application repository. |