Files

6.0 KiB

SacsMobileMaui Topic Tracker

<style> table th, table td { vertical-align: top; } </style>

Last updated: 2026-10-06

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.
P2 Verify native form-handler registration 2026-10-06 Find or add the startup call to SamFormHandler.AssignControlHandlers(), then cover registration and configured-control guards in host tests. A search of SacsMobileMaui currently finds the method definition but no call site. Handler mappings will have no effect unless this registration method runs during app startup.
P3 Replace unused resource-stream enumeration 2026-09-10 Add focused tests for exact, case-insensitive suffix, and missing-resource lookups. SamResourceUtil.GetResourceStream now performs an exact lookup followed by a case-insensitive manifest-name suffix lookup, opening a stream only for the selected resource.

.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
Fix SamDatePicker.AllowInvalid state transition 2026-09-10 2026-10-06 2026-10-06 The equality guard compares rather than assigns; changing Date refreshes the formatted entry/reset display. The explicit MAUI-host test covers both AllowInvalid transitions, valid-date display, invalid-date clearing, reset visibility, and fallback to the native picker date. The host build succeeds and the user confirmed the test passes.
Correct MAUI native handler type checks and complete supported styling branches 2026-09-10 2026-10-06 2026-10-06 Each mapping checks ISamNativeControlStyle. Windows background clearing now assigns a transparent WinUI brush. NativeNoUnderline is intentionally a no-op on iOS/macOS and Windows because those controls have a full border rather than a separate Android-style underline; comments direct callers to NativeNoBorder. SamEditor and SamPicker derive from different MAUI controls, so no common concrete parent is appropriate.
Make SamThreadUtil and form dialogs genuinely asynchronous and deadlock-safe 2026-09-10 2026-09-17 2026-10-06 Added a Windows MAUI host for the explicit NUnit integration tests. All six dispatcher tests and all three interactive dialog tests pass; the four non-interactive NUnit tests also pass. The Sandtrap build check was performed but remains red because the consumer still calls the removed InvokeOnMainThread API and its iOS/Mac Catalyst targets lack ASP.NET Core runtime packs. Per scope, no Sandtrap files were changed; resolve that consumer fallout separately.
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.
Extract reusable logic from core MAUI controls 2026-09-29 2026-09-29 2026-09-29 Continue adding Sam* components using the extracted logic seams, keeping platform-specific behavior in the controls.