Fix GOG cloud save fetch failure handling - #1
Closed
kiequoo wants to merge 10 commits into
Closed
Conversation
DownloadService caches directory listings for 5s. After deleteApp, the cache still holds the deleted directory, so the subsequent LibraryInstallStatusChanged refresh sees stale data. Invalidate the cache after deletion so the next scan picks up the change.
…tkarshdalal#1191) * fix: correct steam game dlc licensing logic and enhance dlc display in content Cross-references resolved depots with owned DLC package information to ensure depots are attributed to the correct DLC app ID. This ensures accurate DLC identification for titles like Don't Starve, Halo MCC, and Cyberpunk 2077. * refactor getMainAppDepots to calculate the logic to be used in getDownloadableDepots
…dalal#918) Also use state.isSteamConnected (Compose-observable StateFlow) instead of SteamService.isConnected (static boolean invisible to recomposition) for banner visibility.
* fix: case-insensitive .exe filter in getWindowsLaunchInfos * removed bug around appLaunchInfo null opening wfm.exe * fixed build * addressed coderabbit * more coderabbit --------- Co-authored-by: Dan Brooke <mail@danbrooke.net> Co-authored-by: Utkarsh Dalal <utkarsh.dalal@toptal.com>
…s to steamcloud (utkarshdalal#1100) * migrate GSE Saves to steam userdata, always upload userdata files to steam cloud fix tests * move migrateGSESavesToSteamUserdata just before beginLaunchApp * also migrateGSESavesToSteamUserdata just before forceSyncUserFiles * also migrateGSESavesToSteamUserdata in SteamUtils ensureSteamSettings * use Files.move for migrating files * check dir empty to exit earlier, update logging * preserve file attributes like timestamp and permission during migration
* Add reusable ini game fix for Imperivm * Avoid rereading ini fixes after migration * Remove ini migration marker tracking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes two bugs in GOG cloud save sync and one related support issue in save-location resolution.
Before this change,
getCloudFiles()treated request or parse failures the same as a valid empty cloud result. That could make sync logic believe the cloud was empty and incorrectly choose an upload path. It also parsed GOGlast_modifiedtimestamps withInstant.parse(...), which does not handle the offset-based format GOG returns, so remote timestamps could be dropped during sync decisions.It also stops fabricating a default GOG cloud-save path when the remote config API returns no save locations. In that case, the game should be treated as not supporting cloud saves rather than showing a misleading fallback path with no usable credentials.
Changes
nullfrom GOG cloud file listing on HTTP or parse failure instead ofemptyList()cloud is emptyOffsetDateTime.parse(...).toInstant()Testing
./gradlew :app:compileDebugKotlin./gradlew :app:testDebugUnitTest --tests app.gamenative.service.gog.GOGCloudSavesManagerTest