Skip to main content

🎨 GeneralUpdate Update UI Generation β€” Full State Coverage

Auto-detects the developer's UI framework and generates a complete update window with real GeneralUpdate.Core event bindings.

⚠️ Targeting NuGet v10.4.6 stable. RealDownloadService.cs is an abstract bridge template requiring manual adaptation.


UI State Machine (Covered by All Templates)​

                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Idle β”‚ ← Initial state
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
β”‚ Auto/manual trigger
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”€β”€β”€β”‚ Checking β”‚ ← "Checking for updates..."
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”
β”‚ β–Ό β–Ό
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ Latest β”‚ β”‚ Found! β”‚ ← Show version/size
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
β”‚ β”‚ User clicks "Update"
β”‚ β–Ό
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”Œβ”€β”€β”€β”€β”€β”‚ Downloading β”‚ ← Progress bar/speed/time
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ β–Ό β–Ό
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ β”‚ Paused β”‚ β”‚ Error β”‚ ← Show error + "Retry"
β”‚ β”‚ β””β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
β”‚ β”‚ β”‚ Resume β”‚ Retry
β”‚ β”‚ β–Ό β–Ό
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ β”‚ Downloading β”‚
β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ └────→│ Applying β”‚ ← "Installing update..."
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”
β”‚ β–Ό β–Ό
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ Success β”‚ β”‚ Failed β”‚
β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β”‚ β–Ό
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ Restart β”‚ ← Restart app
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
└── Back to Idle

Core Bridge: RealDownloadService​

All UI templates share this bridge class, mapping GeneralUpdate.Core events to the IDownloadService interface.

Bridge Logic (v10.4.6 stable)​

// GeneralUpdate.Core Event β†’ DownloadStatus State Machine Mapping:

GeneralUpdateBootstrap.AddListenerMultiDownloadStatistics
β†’ Downloading (update ProgressPercentage/Speed/Remaining)

GeneralUpdateBootstrap.AddListenerMultiDownloadCompleted
β†’ Processing files (extraction/verification)

GeneralUpdateBootstrap.AddListenerMultiAllDownloadCompleted
β†’ Applying β†’ Success

GeneralUpdateBootstrap.AddListenerMultiDownloadError
β†’ DownloadError (after N automatic retries)

GeneralUpdateBootstrap.AddListenerException
β†’ Failed (non-fatal exceptions don't change state)

UI Framework Template List​

Template FileFrameworkFeatures
SemiUrsaClientView.axaml + .csAvalonia + SemiUrsaFull state machine, dark toggle, animations
SemiUrsaUpgradeView.axaml + .csAvalonia + SemiUrsa (Upgrade)Waiting UI
LayUIStyle.xaml + .csWPF + LayUI.WpfGlass effect, progress bar
WPFDevelopersStyle.xaml + .csWPF + WPFDevelopersCircular progress, breathing light animation
AntdUIStyle.csWinForms + AntdUIDark theme, wave progress button
MauiUpdatePage.xaml + .csMAUIDark mode, AppThemeBinding
DownloadViewModels.csAll frameworks sharedMVVM ViewModel
RealDownloadService.csAll frameworks sharedCore bridge