Skip to content

feat: purple toggle switch, glass toast notifications - #529

Merged
laurentiu021 merged 1 commit into
mainfrom
feat/global-toggle-toast-status
May 26, 2026
Merged

feat: purple toggle switch, glass toast notifications#529
laurentiu021 merged 1 commit into
mainfrom
feat/global-toggle-toast-status

Conversation

@laurentiu021

@laurentiu021 laurentiu021 commented May 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Global ToggleSwitch style in App.xaml — purple pill toggle (on/off/locked states)
  • ToastService + glass overlay toast in MainWindow — auto-dismiss 5s, fade animation
  • Replaced all CheckBox/Button toggles with ToggleSwitch on: Startup Manager, Privacy, Windows Features, Context Menu
  • Toast notifications on 12 async operations across all major tabs

Test plan

  • Verify purple toggle renders correctly on Startup Manager
  • Verify toggle on/off states work (purple=on, gray=off)
  • Verify Privacy toggles use new ToggleSwitch
  • Verify Windows Features toggle works (one-way + command)
  • Verify Context Menu toggle works
  • Trigger any scan → glass toast appears bottom-right
  • Toast auto-dismisses after 5 seconds
  • Toast dismiss button (×) works
  • Toast appears on: Startup scan, Cleanup, Bulk Install, Disk Analyzer, File Shredder, Duplicate Scan, Uninstaller, Windows Features, Windows Update, Context Menu

Summary by CodeRabbit

  • New Features

    • Added glass-style toast notifications displayed upon operation completion across multiple features (Cleanup, Disk Analysis, Duplicate Files, Shredder, Uninstaller, Startup, Windows Features, Windows Update, and more)
    • Added purple toggle switch control replacing checkboxes in Startup Manager, Privacy, Windows Features, and Context Menu views
  • Documentation

    • Updated changelog documenting v1.9.0 UI/UX updates

Review Change Stack

- Add global ToggleSwitch style (purple on, gray off, dimmed locked)
- Add ToastService with glass overlay in MainWindow (auto-dismiss 5s)
- Replace CheckBox/Button toggles with ToggleSwitch on Startup, Privacy,
  Windows Features, Context Menu tabs
- Integrate toast notifications on all major async operations
  (scan, install, cleanup, shred, analyze, uninstall, update)
@coderabbitai

coderabbitai Bot commented May 26, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This PR introduces two complementary UI/UX features for version 1.9.0: a glass toast notification system for operation completion feedback and a purple ToggleSwitch control replacing existing CheckBox and Button enable/disable controls across four feature views.

Changes

Glass Toast Notification System

Layer / File(s) Summary
Toast Service Core
SysManager/Services/ToastService.cs
ToastService sealed singleton marshals Show(title, detail, autoHideMs) calls onto the UI dispatcher, manages optional auto-dismiss via DispatcherTimer, and exposes ToastRequested and DismissRequested events.
Toast Overlay UI and Event Handlers
SysManager/MainWindow.xaml, SysManager/MainWindow.xaml.cs
MainWindow.xaml adds a styled toast overlay positioned bottom-right with bound title/detail fields and dismiss click handler. Code-behind subscribes to ToastService events, implements fade-in/fade-out animations, and wires the dismiss button to call ToastService.Dismiss().
Toast Notifications in ViewModels
SysManager/ViewModels/*.cs (10 files)
Completion toasts added to BulkInstallerViewModel, CleanupViewModel, ContextMenuViewModel, DashboardViewModel, DiskAnalyzerViewModel, DuplicateFileViewModel, FileShredderViewModel, StartupViewModel, UninstallerViewModel, WindowsFeaturesViewModel, and WindowsUpdateViewModel, each passing operation results (counts, sizes, freed space) in the toast detail text.

Purple ToggleSwitch Control and View Updates

Layer / File(s) Summary
ToggleSwitch Style Resource
SysManager/App.xaml
New ToggleSwitch style resource for ToggleButton with custom template (rounded track and thumb, drop shadow), and trigger-based visual states for checked, mouse-over, and disabled.
View Control Replacements
SysManager/Views/ContextMenuView.xaml, PrivacyView.xaml, StartupView.xaml, WindowsFeaturesView.xaml
Four views update enable/disable controls: ContextMenuView and StartupView swap CheckBox to styled ToggleButton; PrivacyView replaces checkbox toggles with ToggleButton; WindowsFeaturesView replaces button-based enable/disable with ToggleButton. All bind IsChecked/IsEnabled with existing command parameters preserved.
Changelog
CHANGELOG.md
Version 1.9.0 release entry documents purple toggle switch, glass toast notifications, inline status bar, and control replacements across Startup Manager, Privacy, Windows Features, and Context Menu views.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • laurentiu021/SystemManager#288: Windows optional features toggle tab that established the WindowsFeaturesViewModel.ScanAsync workflow now receiving toast notification completion feedback.
  • laurentiu021/SystemManager#481: Privacy toggles UI that is now being refactored to use the new ToggleSwitch ToggleButton control in PrivacyView.xaml.

Poem

🎉 A purple toggle dances bright,
Glass toasts float in soft spotlight,
Each scan complete, a message gleams—
The UI now fulfills users' dreams! 🐰✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 5.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the two main features added: a purple toggle switch UI component and glass toast notifications system.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/global-toggle-toast-status

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@laurentiu021
laurentiu021 merged commit 910e913 into main May 26, 2026
4 of 5 checks passed
@laurentiu021
laurentiu021 deleted the feat/global-toggle-toast-status branch May 26, 2026 08:04
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.

1 participant