Skip to content
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

[Bug]: if you have some files downloaded already, it wont let you continue if the free space is lower than required space #445

Closed
anispwyn opened this issue Mar 27, 2024 · 2 comments
Assignees
Labels
Area: Runtime Issue labeled for runtime, Hi3Helper.Core and other libraries used by Collapse Bug Something isn't working Help Wanted Extra attention is needed Need User Confirmation This issue needs user attention whether the issue has been fixed or not

Comments

@anispwyn
Copy link

Affected Version

360222b

Bug Behavior

when you have some of the game files downloaded, you pause and then when you decide to continue, it wont let you continue if your free space is lower than required space

Expected Behavior

it (collapse) count the downloaded files and then make the required disk space lower so it can continue

Steps to reproduce

  1. make ur drive almost full, but enough to download 1 game
  2. download the game, wait until the disk space is lower than required space
  3. when your free space is lower than required space, pause and continue
  4. the popups appear

Related Issues

No response

Screenshot(s)

image

Additional Information

No response

@anispwyn anispwyn added the Needs Triaging This issue needs the developer's attention to sort & prioritize. label Mar 27, 2024
@bagusnl bagusnl added Bug Something isn't working Help Wanted Extra attention is needed Area: Runtime Issue labeled for runtime, Hi3Helper.Core and other libraries used by Collapse and removed Needs Triaging This issue needs the developer's attention to sort & prioritize. labels Mar 27, 2024
@bagusnl
Copy link
Member

bagusnl commented Mar 27, 2024

Func InstallManagerBase.CheckDriveFreeSpace

private async ValueTask CheckDriveFreeSpace(UIElement Content, List<GameInstallPackage> packageList)
{
// Get the information about the disk
DriveInfo _DriveInfo = new DriveInfo(_gamePath);
// Get the total of required size on every package
long RequiredSpace = packageList.Sum(x => x.SizeRequired);
long ExistingPackageSize = packageList.Sum(x => x.Segments != null ? x.Segments.Sum(y => GetExistingPartialDownloadLength(y.PathOutput, y.Size)) : GetExistingPartialDownloadLength(x.PathOutput, x.Size));
// Get the total free space of the disk
long DiskSpace = _DriveInfo.TotalFreeSpace;
LogWriteLine($"Total free space required: {ConverterTool.SummarizeSizeSimple(RequiredSpace)} with {_DriveInfo.Name} remaining free space: {ConverterTool.SummarizeSizeSimple(DiskSpace)}", LogType.Default, true);
// Check if the disk space is insufficient, then show the dialog.
if (DiskSpace < (RequiredSpace - ExistingPackageSize))
{
string errStr = $"Free Space on {_DriveInfo.Name} is not sufficient! (Free space: {DiskSpace}, Req. Space: {RequiredSpace - ExistingPackageSize}, Drive: {_DriveInfo.Name})";
LogWriteLine(errStr, LogType.Error, true);
await Dialog_InsufficientDriveSpace(Content, DiskSpace, RequiredSpace - ExistingPackageSize, _DriveInfo.Name);
throw new TaskCanceledException(errStr);
}
}

Unsure what's wrong with it... My sleepy brain tells something about segments calculation in segmented package (eg Genshin install packages) is not working correctly

Cc @neon-nyan

Cryotechnic added a commit that referenced this issue May 25, 2024
THANKS MICROSOFT VERY COOL

This hopefully fixes #445
@Cryotechnic
Copy link
Collaborator

Cryotechnic commented May 25, 2024

Issue should be addressed in 0ce8b93. You can download the build artifact here and let us know if you still have the issue.

@Cryotechnic Cryotechnic added the Need User Confirmation This issue needs user attention whether the issue has been fixed or not label May 25, 2024
@Cryotechnic Cryotechnic self-assigned this May 25, 2024
bagusnl added a commit that referenced this issue May 25, 2024
* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* FIx background handler getting disposed on MainPage reload

* Fix region combobox cannot receive input while reloading MainPage

* (GSP-SR) Clamp ShadowQuality value

#399

* Icon button adjustment

margin, alignment, size, glyph, etc

* [i18n] Localize metadata initialization messages

also for game region combobox placeholder

* [skip ci] Sync translation Translate en_US.json in zh_CN

100% reviewed source file: 'en_US.json'
on 'zh_CN'.

* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* (GSP-SR) Clamp all quality values

* (GSP-SR) GraphicsQuality presets

* [skip ci] Sync translation Translate en_US.json in es_419

100% reviewed source file: 'en_US.json'
on 'es_419'.

* (GSP-SR) Fix fullscreen inconsistency

* [skip ci] Sync translation Translate en_US.json in zh_CN

100% reviewed source file: 'en_US.json'
on 'zh_CN'.

* [skip ci] Sync translation Translate en_US.json in id_ID

100% reviewed source file: 'en_US.json'
on 'id_ID'.

* Adding Async JSONSerializer helper for Stream

* Use nullable assignment for game package return list

* Update stamp file instead of redownloading if certain config has changed

* Update SharpDiscordRPC submodule

* Adjustment on CDN RadioButtons style

* Adjustment on CDN RadioButtons style (pt. 2)

* (GSP) Fix resolution related crash in RDP session

* (CodeQA) ISULR

- Suppress warnings
- Reformat
- Adjust nullables

* Update EncTool

* [skip ci] Update Checkout CI and add PR template

* [skip ci] Update formatting error on PR template

* Add ``PreventSleep()`` to prevent Windows' sleep routine

Co-Authored-By: Bagus Nur Listiyono <28079733+bagusnl@users.noreply.github.com>

* (GSP) Fix root cause of resolution related crash in RDP session

* Implement PreventSleep() on needed methods

* (GSP) Implement mobile layout mode

Only for GI for now

* (GSP) Add delay game launch function on pre launch command

* Dont catch cancellation exception on PreventSleep

* Show nav sidebar only on hover

* Add drop shadow to nav button

* (HI3 Repair) Throw if asset key is not found

* [skip ci] Sync translation Translate en_US.json in zh_CN

100% reviewed source file: 'en_US.json'
on 'zh_CN'.

* Add MobileLayout support for StarRail

#466
Thanks for the details @ubdjshdb

* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* [HSR Settings] Update localization text for 120FPS option selector

* [skip ci] Sync translation Translate en_US.json in zh_CN

100% reviewed source file: 'en_US.json'
on 'zh_CN'.

* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* [skip ci] Sync translation Translate en_US.json in es_419

100% reviewed source file: 'en_US.json'
on 'es_419'.

* [skip ci] Sync translation Translate en_US.json in id_ID

100% reviewed source file: 'en_US.json'
on 'id_ID'.

* [skip ci] Sync translation Translate en_US.json in id_ID

100% reviewed source file: 'en_US.json'
on 'id_ID'.

* HoYoPlay API Adjustments (#465)

* Change EncTool path

* Use async stream for loading background files

* Fix escaped JSON characters don't get parsed correctly

* Move constant JSON class into inner extension class

* Refactor API Loaders

Using the new ILauncherApi to unify the integration with other types of API (like: HoYoPlay)

* Adding basic HYP to Sophon pkg resource conversion

+ Borrowing HSR version check and game settings for now.

* Adding background image support for HoYoPlay API

* Adding news and carousel panel support for HoYoPlay API

* Fix false Base64 detection on ``GetServeV3String()``

This was causing some installation detection issues where some region/version check related string is falsely detected as Base64 and make the string rendered incorrectly

* Fix some typo and avoid unnecessary buffer alloc on ``ServeV3Data``

+ Also fixes throw while checking for non-existence pre-load property

* Fix crash while changing launcher release channel

* Fix background throw due to null preload property

* Adding new decompressor for .zip package files

Adding USENEWZIPDECOMPRESS to use SharpCompress decompressor with multi-thread zip decompress support.

* Avoid null packages to be proceeded

* Check availability for cache type: "Event" with DLM = 2

* Fix Hi3 Game Repair for version: ``Thelema``

* Re-adding checks if the normal metadata file exists (Hi3)

* FIx "Check Update" button status's center position

* Adjust windows title-bar button style

* Extend maximum threads for download to 16

* Fix TextFillColorBrush on update status button

* Use GetURLStatusCode to check URL status on repair/cache

* Use ``Enum.GetValues<T>()`` instead of ``Enum.GetValues(typeof(T))``

* Fix last exception in ``RetryTimeoutAfter()`` not getting thrown

* Fix threading issues on Install, Repair and Cache mechanism

* Fix Infinity and NaN numbers in ``TotalPerfileProgress``

* Use ``UnNaNInfinity()`` in ``UpdateProgress()``

* Fix data corruption while performing game data migration

* Fix max session exception on Hi3Helper.Http

* Fix float/double to TimeSpan number conversion

This due to the number being a negative infinity

* Bump version

* Add Sophon submodule

* FIx background handler getting disposed on MainPage reload

* Fix region combobox cannot receive input while reloading MainPage

* Adding Sophon testing/usage sample

* Adding Async JSONSerializer helper for Stream

* Use nullable assignment for game package return list

* Update stamp file instead of redownloading if certain config has changed

* Update SharpDiscordRPC submodule

* Adding Sophon submodule and its testing project

* Add new Sophon Chunk download mechanism

* (GSP-SR) Clamp ShadowQuality value

#399

* [i18n] Localize metadata initialization messages

also for game region combobox placeholder

* [skip ci] Sync translation Translate en_US.json in zh_CN

100% reviewed source file: 'en_US.json'
on 'zh_CN'.

* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* (GSP-SR) Clamp all quality values

* (GSP-SR) GraphicsQuality presets

* [skip ci] Sync translation Translate en_US.json in es_419

100% reviewed source file: 'en_US.json'
on 'es_419'.

* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* [skip ci] Sync translation Translate en_US.json in es_419

100% reviewed source file: 'en_US.json'
on 'es_419'.

* Localize Discord RPC Game/Region strings

* Add a way to skip audio patch

Currently only for Star Rail

* (CDN) Add Coding mirror

* [skip ci] Sync translation Translate en_US.json in zh_CN

100% reviewed source file: 'en_US.json'
on 'zh_CN'.

* Update NuGet Dependencies

H.NotifyIcon
https://www.nuget.org/packages/H.NotifyIcon.WinUI#releasenotes-body-tab

HtmlAgilityPack
https://github.com/zzzprojects/html-agility-pack/releases/tag/v1.11.61

WASDK
https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-153-15240428000

TaskScheduler
https://github.com/dahall/TaskScheduler/releases/tag/v2.11.0

* Update NuGet

* Fix build configuration

* Adjustment on CDN RadioButtons style

* Adjustment on CDN RadioButtons style (pt. 2)

* (GSP-SR) Fix fullscreen inconsistency

* Update sophon submodule

* Update sophon submodule

* Add ``PreventSleep()`` to prevent Windows' sleep routine

Co-Authored-By: Bagus Nur Listiyono <28079733+bagusnl@users.noreply.github.com>

* [TaskExtensions] Throw inner exception if completed task is faulty

* [HYP] Add parser for social media icons

* [Sophon] Fix crash caused by empty URL conditions in news API

* [UI] Adjust the social media flyout style

* Implement PreventSleep() on needed methods

* Update GitInfo NuGet and package lock file

* [TaskExtensions] Use the new ``WaitForRetryAsync`` for retrying task

* [UI] Fix inconsistent foreground color for socmed's QR title

* (GSP) Implement mobile layout mode

Only for GI for now

* (GSP) Add delay game launch function on pre launch command

* Update submodules and NuGet

* Use custom style for ``ImageEx``

* Remove unnecessary ``Console.WriteLine()`` under ``CurrentMetadataConfig``

* Use custom style for ``ImageEx`` pt. 2

* Use async WriteLine for logger (also uses .Error and .Out to write)

* Hi3Helper.Sophon adjustment

* Dont catch cancellation exception on PreventSleep

* Show nav sidebar only on hover

* Add drop shadow to nav button

* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* [skip ci] Sync translation Translate en_US.json in zh_CN

100% reviewed source file: 'en_US.json'
on 'zh_CN'.

* [skip ci] Sync translation Translate en_US.json in ja_JP

100% reviewed source file: 'en_US.json'
on 'ja_JP'.

* [skip ci] Sync translation Translate en_US.json in es_419

100% reviewed source file: 'en_US.json'
on 'es_419'.

* Update Hi3Helper.Http submodule

* Fix fallback translation for MobileLayout text

* [skip ci] Sync translation Translate en_US.json in id_ID

100% reviewed source file: 'en_US.json'
on 'id_ID'.

* Remove deprecated CDN (Bitbucket)

* UI Adjustments

+ Adding FontSize property to the CompressedTextBlock
+ Unify ApplyShadow to be used by other elements, moving the code to UIElementExtensions with some changes.
+ Adding StartAnimationDetached to AnimationHelper extension
+ Adjust element sizes on both Normal and Small Size window
+ Minor adjustment on brushes
+ Move the playtme button beside the Quick Settings and Community Tools button
+ Adding shadows to navigation menu icons (by: @shatyuka) and social media icons
+ New layout and adjustments for Carousel and News panel
+ Adjustment on Install, Update and Start game button
+ Adding loading animation while loading ImageEx element

Co-Authored-By: Shatyuka <shatyuka@qq.com>

* [skip ci] Sync translation Translate en_US.json in id_ID

100% reviewed source file: 'en_US.json'
on 'id_ID'.

* Remove unnecessary Lottie package

* Adjust Preload box dialog UI

* Use current thread for animation compositor

* Adjust preload button style to ``AcrylicButtonStyle``

* Use current thread for animation compositor (pt. 2)

* Add 500 ms delay before side panel animation is triggered

* Fix crash on starting animation with no access to thread

* Minor adjustment on loading frame

* Fix task not retrying due to cancellation from linked source

* Fix retry mechanism on API loading not working

* Adjust DisconnectedPage style

* Add HoYoPlay featured event icon and styles

* Fix installation progress bar style

* Update sophon and HYP install mechanism

* fix typo

* change insufficient drive space dialog required type

* fix incorrect package size indicators to the user

THANKS MICROSOFT VERY COOL

This hopefully fixes #445

* update submodule

* update submodule

wrong commit hash 😓

---------

Co-authored-by: Kemal Setya Adhi <dev.kemalsetyaa@gmail.com>
Co-authored-by: Shatyuka <shatyuka@qq.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Ron Friedman <cryogen65@gmail.com>

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Kemal Setya Adhi <dev.kemalsetyaa@gmail.com>
Co-authored-by: Shatyuka <shatyuka@qq.com>
Co-authored-by: Ron Friedman <cryogen65@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Runtime Issue labeled for runtime, Hi3Helper.Core and other libraries used by Collapse Bug Something isn't working Help Wanted Extra attention is needed Need User Confirmation This issue needs user attention whether the issue has been fixed or not
Projects
None yet
Development

No branches or pull requests

3 participants