Skip to content

MAUI quality control#122

Draft
d2dyno1 wants to merge 13 commits intomasterfrom
imp_design
Draft

MAUI quality control#122
d2dyno1 wants to merge 13 commits intomasterfrom
imp_design

Conversation

@d2dyno1
Copy link
Copy Markdown
Member

@d2dyno1 d2dyno1 commented Apr 25, 2026

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves MAUI/Uno UI behavior around read-only vault usage and credential handling, while refactoring secure key / native interop types into the Shared layer and enhancing widget persistence.

Changes:

  • Add “saved credentials” login flow and UI templates, plus a model for cached credentials in the SDK.
  • Enforce read-only mode across browser actions/drag-drop and add UI indicators (badge, toggles).
  • Persist health widget state as a richer model (date + severity) and add text previewer UI stats (char count, cursor position).

Reviewed changes

Copilot reviewed 80 out of 119 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
tests/SecureFolderFS.Tests/FileSystemTests/FileSystemCacheTests.cs Update test call signature for local filesystem retrieval
src/Shared/SecureFolderFS.Shared/SecureStore/SecureKey.cs Move/retarget secure key + P/Invoke usage into Shared namespaces
src/Shared/SecureFolderFS.Shared/SecureStore/ManagedKey.cs Move to Shared namespace; add ManagedKey.Empty
src/Shared/SecureFolderFS.Shared/SecureFolderFS.Shared.csproj Enable unsafe blocks in Shared project
src/Shared/SecureFolderFS.Shared/PInvoke/UnsafeNative.cs Rename/move unsafe native API wrapper into Shared.PInvoke
src/Shared/SecureFolderFS.Shared/Extensions/KeyExtensions.cs Move key extension methods to Shared.Extensions
src/Sdk/SecureFolderFS.Sdk/ViewModels/Views/Vault/VaultLoginViewModel.cs Inject additional service; cleanup formatting
src/Sdk/SecureFolderFS.Sdk/ViewModels/Views/Vault/BrowserViewModel.cs Block creation/import commands when read-only
src/Sdk/SecureFolderFS.Sdk/ViewModels/Views/Root/VaultPreviewViewModel.cs Rename read-only property and update unlock call
src/Sdk/SecureFolderFS.Sdk/ViewModels/Views/Overlays/VaultItemInfoOverlayViewModel.cs Whitespace cleanup
src/Sdk/SecureFolderFS.Sdk/ViewModels/Views/Credentials/CredentialsResetViewModel.cs Invalidate cached credentials after auth modification
src/Sdk/SecureFolderFS.Sdk/ViewModels/Views/Credentials/CredentialsConfirmationViewModel.cs Invalidate cached credentials after auth modification; comment tweak
src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/Widgets/Health/HealthWidgetViewModel.cs Persist/restore health widget date + severity
src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/Storage/Browser/BrowserItemViewModel.cs Block move/copy/rename/delete commands when read-only
src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/Previewers/TextPreviewerViewModel.cs Track character count + cursor position
src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/LoginViewModel.cs Add saved-credentials flow + commands; cache key sequence on unlock
src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/Authentication/PersistedAuthenticationViewModel.cs New auth VM for “use saved credentials” step
src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/Authentication/AuthenticationViewModel.cs Document ProvideCredentials command contract
src/Sdk/SecureFolderFS.Sdk/EventArguments/VaultUnlockedEventArgs.cs Using order cleanup
src/Sdk/SecureFolderFS.Sdk/DataModels/HealthDataModel.cs New widget data model (scan date + severity)
src/Sdk/SecureFolderFS.Sdk/AppModels/PersistedCredentialsModel.cs New in-memory credentials cache model
src/Sdk/SecureFolderFS.Sdk.DeviceLink/ViewModels/CredentialViewModel.cs Remove unused using
src/Platforms/SecureFolderFS.Uno/Views/Vault/VaultOverviewPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/Views/Vault/VaultLoginPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/Views/Vault/VaultLoginPage.xaml Update login header text + wire saved-credential bindings
src/Platforms/SecureFolderFS.Uno/Views/Vault/VaultHealthPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/ViewModels/YubiKey/YubiKeyViewModel.cs Update constants + secure store namespace usage
src/Platforms/SecureFolderFS.Uno/ViewModels/WindowsHello/WindowsHelloViewModel.cs Update constants + secure store namespace usage
src/Platforms/SecureFolderFS.Uno/ViewModels/DeviceLink/DeviceLinkViewModel.cs Remove old secure-store import; add Shared.SecureStore
src/Platforms/SecureFolderFS.Uno/UserControls/LoginOptions.xaml.cs Add DP bindings for saved-credential options/actions
src/Platforms/SecureFolderFS.Uno/UserControls/LoginOptions.xaml Add saved-credential UI actions in flyout
src/Platforms/SecureFolderFS.Uno/UserControls/LoginControl.xaml Add persisted-auth template + selector wiring
src/Platforms/SecureFolderFS.Uno/UserControls/Introduction/IntroductionControl.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/UserControls/Introduction/FileSystemSlide.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/UserControls/Introduction/AuthenticationSlide.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/UserControls/InterfaceRoot/VaultPreviewRootControl.xaml Wire saved-credential bindings + rename read-only binding
src/Platforms/SecureFolderFS.Uno/UserControls/FeatureTile.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/TemplateSelectors/LoginTemplateSelector.cs Add persisted-auth template selection
src/Platforms/SecureFolderFS.Uno/Platforms/Windows/WindowsWebDavFileSystem.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/Platforms/Windows/ServiceImplementation/WindowsApplicationService.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/Platforms/Windows/Helpers/WindowsLifecycleHelper.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/Platforms/Windows/Helpers/WindowsBoundsManager.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/Platforms/Desktop/ViewModels/MacOSBiometricsViewModel.cs Secure store namespace update; whitespace cleanup
src/Platforms/SecureFolderFS.Uno/Platforms/Desktop/ViewModels/MacOSBiometricsCreationViewModel.cs Secure store namespace update
src/Platforms/SecureFolderFS.Uno/Platforms/Desktop/SkiaWebDavFileSystem.MacOS.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/PInvoke/UnsafeNative.Imports.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Uno/App.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.UI/ViewModels/Authentication/KeyFileViewModel.cs Update to Shared extensions + Shared secure store
src/Platforms/SecureFolderFS.UI/ValueConverters/BaseStringInterpolationConverter.cs Allow non-string values via ToString()
src/Platforms/SecureFolderFS.UI/Strings/en-US/Resources.resx Add strings for saved creds + text stats
src/Platforms/SecureFolderFS.UI/Storage/StorageProperties/RecycleBinItemSizeOfProperty.cs Whitespace cleanup
src/Platforms/SecureFolderFS.UI/Storage/RecycleBinFolder.cs Whitespace cleanup
src/Platforms/SecureFolderFS.UI/ServiceImplementation/VaultManagerService.cs Import cleanup (cryptography namespace)
src/Platforms/SecureFolderFS.Maui/Views/Vault/OverviewPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Views/Vault/OverviewPage.xaml Add read-only badge w/ platform icons
src/Platforms/SecureFolderFS.Maui/Views/Vault/LoginPage.xaml Add saved-credential UI + option container; layout updates
src/Platforms/SecureFolderFS.Maui/Views/Vault/BrowserPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Views/Vault/BrowserPage.xaml Bind browser control read-only state
src/Platforms/SecureFolderFS.Maui/Views/Modals/Vault/RecycleBinModalPage.xaml Fix localization parameter usage for toolbar text
src/Platforms/SecureFolderFS.Maui/Views/Modals/Vault/FilePreviewModalPage.xaml.cs Safer modal completion + reuse VLC instances; adjust repeat options
src/Platforms/SecureFolderFS.Maui/Views/Modals/Vault/FilePreviewModalPage.xaml Hide cast button; add editor cursor binding + footer stats UI
src/Platforms/SecureFolderFS.Maui/Views/Modals/Vault/BrowserSearchModalPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Views/Modals/PaymentModalPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Views/MainPage.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/UserControls/Widgets/HealthWidget.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/UserControls/Widgets/AggregatedDataWidget.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/UserControls/LoginControl.xaml Add persisted-auth template + selector wiring
src/Platforms/SecureFolderFS.Maui/UserControls/HealthScanControl.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/UserControls/CommandBarControl.xaml.cs Adjust margin when toolbar on top
src/Platforms/SecureFolderFS.Maui/UserControls/Browser/ItemProperty.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/UserControls/Browser/BrowserControl.xaml.cs Add bindable IsReadOnly property
src/Platforms/SecureFolderFS.Maui/UserControls/Browser/BrowserControl.DragDrop.xaml.cs Disable drag/drop handlers when read-only
src/Platforms/SecureFolderFS.Maui/UserControls/AnimatedRevealLayout.cs Improve hide easing; measure reveal size reliably
src/Platforms/SecureFolderFS.Maui/TemplateSelectors/LoginTemplateSelector.cs Add persisted-auth template selection
src/Platforms/SecureFolderFS.Maui/Popups/CredentialsPopup.xaml.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/iOS/ViewModels/IOSBiometricViewModel.cs Update constants + secure store namespace usage
src/Platforms/SecureFolderFS.Maui/Platforms/iOS/ViewModels/IOSBiometricCreationViewModel.cs Secure store namespace update
src/Platforms/SecureFolderFS.Maui/Platforms/iOS/Storage/StorageProperties/IOSSizeOfProperty.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/iOS/Storage/StorageProperties/IOSLastModifiedAtProperty.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/iOS/Storage/IOSFolder.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/iOS/ServiceImplementation/IOSFileExplorerService.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/iOS/Handlers/CustomSliderHandler.cs Use static lambda to avoid capture
src/Platforms/SecureFolderFS.Maui/Platforms/Android/ViewModels/AndroidBiometricViewModel.cs Secure store namespace update
src/Platforms/SecureFolderFS.Maui/Platforms/Android/Storage/StorageProperties/AndroidLastModifiedAtProperty.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/Android/Storage/AndroidStorable.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/Android/Storage/AndroidFile.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/Android/ServiceImplementation/VaultForegroundService.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/Android/ServiceImplementation/AndroidVaultFileSystemService.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/Android/Helpers/DragThresholdTouchListener.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Platforms/Android/Helpers/AndroidLifecycleHelper.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Maui/Helpers/EasingHelpers.cs Expand single-line if for clarity
src/Platforms/SecureFolderFS.Cli/Program.cs Whitespace cleanup
src/Platforms/SecureFolderFS.Cli/CredentialReader.cs Use Shared secure store namespace
src/Platforms/SecureFolderFS.Cli/Commands/VaultUnmountCommand.cs Remove trailing whitespace lines
src/Platforms/SecureFolderFS.Cli/Commands/VaultRunCommand.cs Remove trailing whitespace lines
src/Platforms/SecureFolderFS.Cli/Commands/VaultMountCommand.cs Remove trailing whitespace lines
src/Platforms/SecureFolderFS.Cli/Commands/VaultInfoCommand.cs Remove trailing whitespace lines
src/Platforms/SecureFolderFS.Cli/Commands/CredsRemoveCommand.cs Remove trailing whitespace lines
src/Platforms/SecureFolderFS.Cli/Commands/CredsChangeCommand.cs Remove trailing whitespace lines
src/Platforms/SecureFolderFS.Cli/Commands/CredsAddCommand.cs Remove trailing whitespace lines
src/Core/SecureFolderFS.Core/VaultAccess/VaultParser.cs Using order cleanup
src/Core/SecureFolderFS.Core/Routines/Operational/UnlockRoutine.cs Update imports to new crypto/shared secure store split
src/Core/SecureFolderFS.Core/Routines/Operational/RecoverRoutine.cs Update imports to new crypto/shared secure store split
src/Core/SecureFolderFS.Core/Routines/Operational/ModifyCredentialsRoutine.cs Remove old secure-store import
src/Core/SecureFolderFS.Core/Routines/Operational/CreationRoutine.cs Update imports to new crypto/shared secure store split
src/Core/SecureFolderFS.Core/Models/SecurityWrapper.cs Using order cleanup
src/Core/SecureFolderFS.Core.Migration/AppModels/MigratorV2_V3.cs Update constants + secure store namespace usage
src/Core/SecureFolderFS.Core.Migration/AppModels/MigratorV1_V2.cs Update imports to new crypto/shared secure store split
src/Core/SecureFolderFS.Core.Cryptography/Security.cs Using order cleanup
src/Core/SecureFolderFS.Core.Cryptography/SecureFolderFS.Core.Cryptography.csproj Remove unused project reference to Storage
src/Core/SecureFolderFS.Core.Cryptography/NameCrypt/AesSivNameCrypt.cs Using order cleanup
src/Core/SecureFolderFS.Core.Cryptography/KeyPair.cs Move KeyPair namespace + use Shared secure store/extensions
src/Core/SecureFolderFS.Core.Cryptography/Helpers/CryptHelpers.cs Update imports to Shared secure store
src/Core/SecureFolderFS.Core.Cryptography/HeaderCrypt/XChaChaHeaderCrypt.cs Using order cleanup
src/Core/SecureFolderFS.Core.Cryptography/HeaderCrypt/NoHeaderCrypt.cs Remove unused secure-store import
src/Core/SecureFolderFS.Core.Cryptography/HeaderCrypt/BaseHeaderCrypt.cs Using order cleanup
src/Core/SecureFolderFS.Core.Cryptography/HeaderCrypt/AesGcmHeaderCrypt.cs Using order cleanup
src/Core/SecureFolderFS.Core.Cryptography/HeaderCrypt/AesCtrHmacHeaderCrypt.cs Using order cleanup
src/Core/SecureFolderFS.Core.Cryptography/ContentCrypt/AesCtrHmacContentCrypt.cs Using order cleanup

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/LoginViewModel.cs
Comment thread src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/LoginViewModel.cs Outdated
Comment thread src/Sdk/SecureFolderFS.Sdk/AppModels/PersistedCredentialsModel.cs
Comment thread src/Sdk/SecureFolderFS.Sdk/ViewModels/Controls/LoginViewModel.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants