NeoStation Beta 0.8.5+100
Features
- fix(scan): ignore hidden/AppleDouble ROM sidecar files by default (adds toggle, fixes #35) (#36) @jbripley
- feat(systems): add favorites tile with sqlite-backed filtering (#38) @jbripley
Fix
fix(android): resolve scoped-storage permission denied for standalone emulators
Emulators .emu (Imagine-Engine) and DuckStation were receiving raw filesystem
paths or file:// URIs after the launcher refactor. On devices with strict
Scoped Storage enforcement (Huawei EMUI 12, Samsung OneUI, RedMagic, etc.)
the target emulators lack read permission for those external-storage paths,
causing Permission Denied.
Changes:
- EmulatorLauncher.kt: neostation-localuri: now preserves content:// URIs
so launchGenericIntent can grant FLAG_GRANT_READ_URI_PERMISSION to the
target emulator. All .emu emulators across every system are fixed. - ps1.json: DuckStation bootPath now uses {file.uri} instead of {file.path}.
DuckStation supports URI strings in bootPath, letting Android propagate
read access via the intent grant mechanism.
fix(android): resolve scoped-storage permission denied for standalone emulators
Emulators .emu (Imagine-Engine) and DuckStation were receiving raw filesystem
paths or file:// URIs after the launcher refactor. On devices with strict
Scoped Storage enforcement (Huawei EMUI 12, Samsung OneUI, RedMagic, etc.)
the target emulators lack read permission for those external-storage paths,
causing Permission Denied.
Changes:
- EmulatorLauncher.kt: neostation-localuri: now preserves content:// URIs
so launchGenericIntent can grant FLAG_GRANT_READ_URI_PERMISSION to the
target emulator. All .emu emulators across every system are fixed. - ps1.json: DuckStation bootPath now uses {file.uri} instead of {file.path}.
DuckStation supports URI strings in bootPath, letting Android propagate
read access via the intent grant mechanism.
fix: systems visibility, favorites virtual system, and ALL scraping
- Fix inverted toggle logic in Settings > Systems (ON now means visible).
- Add automatic show/hide for the favorites virtual system based on
whether game favorites exist (excluding music from the count). - Disable the favorites toggle in Settings when no game favorites are
present; enable it when at least one exists. - Ensure favorites appears/disappears instantly in grid and carousel
when the last favorite is added or removed. - Add
efreshDetectedSystems() to SqliteConfigProvider so UI updates
immediately after toggling a favorite without requiring a full scan. - Update CustomToggleSwitch to support a disabled state with dimmed
visuals and no interaction. - Filter out music from favorites count in otalFavorites and in DB
queries so music favorites do not keep the favorites system visible. - Fix scraping from the ALL system by sending the real game's system
ID (_effectiveSystem.id) instead of �ll to ScreenScraper.
Full Changelog: v0.8.4+99...v0.8.5+100