Skip to content

Revamp the download settings dialog #777

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

Revamp the download settings dialog #777

wants to merge 9 commits into from

Conversation

gablm
Copy link
Member

@gablm gablm commented Jun 27, 2025

Main Goal

Adds new options to what behaviour the launcher should have after a successful install or update: shutdown, restart or hibernate. The timeout between the completion of the install and the shutdown/restart can be customized.
(closes #628)

Allows limiting download speed without going to the settings page.

PR Status :

  • Overall Status : Done
  • Commits : Done
  • Synced to base (Collapse:main) : Yes
  • Build status : OK
  • Crashing : No
  • Bug found caused by PR : 0

Templates

Changelog Prefixes
  **[New]**
  **[Imp]**
  **[Fix]**
  **[Loc]**
  **[Doc]**

@gablm gablm requested review from a team and Copilot June 27, 2025 20:57
@gablm gablm self-assigned this Jun 27, 2025
@gablm gablm added Enhancement New feature or request Area: UI/UX Issue labeled for User Interface/eXperience related issue labels Jun 27, 2025
Copy link
Contributor

@Copilot 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

Revamps the download settings dialog to offer enhanced post-install actions and integrated download speed limiting.

  • Adds new language strings and UI elements to support post-install behaviours (shutdown, restart, hibernate, do nothing) and a customizable timeout.
  • Replaces the old StartAfterInstall flag with a new PostInstallBehaviour enum and updates corresponding configuration and UI code.
  • Introduces a new DownloadSettings dialog to simplify download speed limiter adjustments.

Reviewed Changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Hi3Helper.Core/Lang/en_US.json Added new UI strings for post-install behaviour options.
Hi3Helper.Core/Lang/Locale/LangDialogs.cs Mapped new language strings in localized dialogs.
Hi3Helper.Core/Classes/Shared/Region/LauncherConfig.cs Added a new config property for post-install shutdown timeout (with a spelling inconsistency).
CollapseLauncher/XAMLs/MainApp/ValueConverters.cs Added a new converter for time formatting.
CollapseLauncher/XAMLs/MainApp/Pages/SettingsPage.xaml.cs Updated settings page to refresh download speed limiter UI.
CollapseLauncher/XAMLs/MainApp/Pages/HomePage.xaml.cs Refactored game start logic to use the new post-install behaviour.
CollapseLauncher/XAMLs/MainApp/Pages/HomePage.GameManagement.cs Integrated post-install procedure logic replacing the old flag.
CollapseLauncher/XAMLs/MainApp/Pages/Dialogs/SimpleDialogs.cs Updated dialog invocation to use the new DownloadSettings control.
CollapseLauncher/XAMLs/MainApp/Pages/Dialogs/DownloadSettings.xaml.cs & .xaml New dialog UI and code-behind for configuring download speed and post-install timeout.
CollapseLauncher/Classes/Interfaces/IGameInstallManager.cs Removed the old StartAfterInstall property in favour of PostInstallBehaviour.
CollapseLauncher/Classes/Interfaces/Class/Enums.cs Introduced the new PostInstallBehaviour enum.
CollapseLauncher/Classes/InstallManagement/Base/InstallManagerBase.cs Extended the install manager base class to support PostInstallBehaviour while retaining legacy StartAfterInstall.
Comments suppressed due to low confidence (1)

CollapseLauncher/Classes/InstallManagement/Base/InstallManagerBase.cs:161

  • Both 'StartAfterInstall' and the new 'PostInstallBehaviour' properties exist. If 'StartAfterInstall' is no longer used, consider deprecating or removing it to prevent confusion.
        public virtual bool       StartAfterInstall { get; set; }

Copy link

github-actions bot commented Jun 27, 2025

Qodana for .NET

4 new problems were found

Inspection name Severity Problems
Possible 'System.NullReferenceException' 🔶 Warning 4

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Detected 69 dependencies

Third-party software list

This page lists the third-party software dependencies used in CollapseLauncher

Dependency Version Licenses
CommunityToolkit.Common 8.4.0 MIT
CommunityToolkit.Mvvm 8.4.0 MIT
CommunityToolkit.WinUI.Animations 8.2.250402 MIT
CommunityToolkit.WinUI.Behaviors 8.2.250402 MIT
CommunityToolkit.WinUI.Controls.Primitives 8.2.250402 MIT
CommunityToolkit.WinUI.Controls.Sizers 8.2.250402 MIT
CommunityToolkit.WinUI.Converters 8.2.250402 MIT
CommunityToolkit.WinUI.Extensions 8.2.250402 MIT
CommunityToolkit.WinUI.Helpers 8.2.250402 MIT
CommunityToolkit.WinUI.Media 8.2.250402 MIT
CommunityToolkit.WinUI.Triggers 8.2.250402 MIT
Costura.Fody 6.0.0 MIT
DependencyPropertyGenerator 1.5.0 MIT
DotNet.ReproducibleBuilds 1.2.25 MIT
EventGenerator.Generator 0.13.1 MIT
Fody 6.9.2 MIT
GitInfo 3.5.0 MIT
Google.Protobuf.Tools 3.31.1 PROTOBUF
Google.Protobuf 3.31.1 BSD-3-Clause
Hi3Helper.ZstdNet 1.6.4 BSD-3-Clause
HtmlAgilityPack 1.12.1 MIT
Markdig.Signed 0.41.3 BSD-2-Clause
Microsoft.CSharp 4.7.0 MIT
Microsoft.Extensions.DependencyInjection.Abstractions 9.0.6 MIT
Microsoft.Extensions.DependencyInjection 9.0.6 MIT
Microsoft.Extensions.Logging.Abstractions 9.0.6 MIT
Microsoft.Extensions.Logging 9.0.6 MIT
Microsoft.Extensions.Options 9.0.6 MIT
Microsoft.Extensions.Primitives 9.0.6 MIT
Microsoft.NET.ILLink.Tasks 9.0.6 MIT
Microsoft.NETCore.Targets 6.0.0-preview.4.21253.7 MIT
Microsoft.Web.WebView2 1.0.3344-prerelease BSD-3-Clause
BSD-MYLEX
Microsoft.Win32.SystemEvents 9.0.6 MIT
Microsoft.Windows.CsWin32 0.3.183 Apache-2.0
Microsoft.Windows.CsWinRT 2.2.0 MIT
Microsoft.Windows.SDK.BuildTools.MSIX 1.7.20250508.1 MIT
Microsoft.Windows.SDK.BuildTools 10.0.26100.4188 PROPRIETARY-LICENSE
Microsoft.Windows.SDK.Win32Docs 0.1.42-alpha PROPRIETARY-LICENSE
Microsoft.Windows.SDK.Win32Metadata 63.0.31-preview MIT
Microsoft.Windows.WDK.Win32Metadata 0.13.25-experimental MIT
Microsoft.WindowsAppSDK.AI 1.8.135-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Base 1.8.250509001-experimental MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.DWrite 1.8.25050910-experimental.2 MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Foundation 1.8.250507001-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.InteractiveExperiences 1.8.250509002-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Packages 1.8.250515001-experimental2 MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Widgets 1.8.250505003-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.WinUI 1.8.250507002-experimental MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK 1.8.250515001-experimental2 MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.Xaml.Behaviors.WinUI.Managed 3.0.0 MIT
NuGet.Versioning 6.14.0 Apache-2.0
PhotoSauce.MagicScaler 0.15.0 MIT
PhotoSauce.NativeCodecs.Libwebp 1.4.0-preview1 MIT
Roman-Numerals 2.0.1 MIT
Sentry 5.11.2 MIT
SharpCompress 0.40.0 MIT
SharpHDiffPatch.Core 2.3.3 MIT
System.Buffers 4.6.0 MIT
System.Drawing.Common 9.0.6 MIT
System.IO.Hashing 9.0.6 MIT
System.Security.AccessControl 6.0.1 MIT
System.Security.Cryptography.ProtectedData 9.0.6 MIT
System.Text.Encoding.CodePages 9.0.6 MIT
System.Text.Json 9.0.6 MIT
System.Threading.Tasks.Extensions 4.5.4 MIT
TaskScheduler 2.12.1 MIT
ThisAssembly.Constants 2.0.6 MIT
Velopack 0.0.1297 MIT
ZstdSharp.Port 0.8.5 MIT
Contact Qodana team

Contact us at qodana-support@jetbrains.com

Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: UI/UX Issue labeled for User Interface/eXperience related issue Enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Enhancement] Add a "Shut down PC when finished" option to download settings
1 participant