PR #267: Fix storage folder handling
Pre-release
Pre-release
PR #267
Title: Fix storage folder handling
Source PR: WinNative-Emu/WinNative#267
Source branch: fix-storage-folder-handling
Source commit: b65915ad36a1acd8de15b3495f8e9a21c9ae1139
Build workflow run: https://github.com/MaxsTechReview/WinNative/actions/runs/24926203274
What This PR Is About
- Adds shared Android file picker and folder picker contracts that prefer normal device storage roots.
- Validates selected folders are resolvable and writable before saving them for stores, shortcuts, containers, and game installs.
- Releases stale persisted tree URI permissions only after all active folder preferences are available.
- Keeps existing folder grants when persistable permission capture fails for a newly selected folder.
- Aligns Epic and GOG custom install folder behavior with Steam when the selected folder already matches the game folder.
- Avoids storing pseudo tree URI paths when folder URI resolution fails.
- Keeps Steam direct launches, ColdClient setup, and Steamless unpacking on the current service-resolved install folder when custom install paths change.
- Refreshes stale Steam shortcut executable metadata when a valid executable is found in the current install folder.
- Adds writable-directory checks before Steam, Epic, and GOG downloads create install markers.
- Fixes CI compile errors from the tree URI helper expression body and missing
Activityimport. git diff --checkpassed with only existing CRLF warnings.- Gradle compile was not run locally because
javais not onPATHandJAVA_HOMEis unset.
Attached Artifacts
- WinNative-Debug-Standard-PR.267-b6591.apk
- WinNative-Debug-Ludashi-PR.267-b6591.apk
- WinNative-Debug-Pubg-PR.267-b6591.apk
Built from source commit b6591.