NeoStation Beta 0.8.6+101
fix(android): allow Flycast to read sibling subfolders via SAF tree permissions
Flycast standalone failed to launch NAOMI2 / NAOMI GD games because these
ROMs are .zip files paired with a sibling folder (same name, no extension)
containing .chd files. The emulator builds child document URIs inside the
sibling folder, but those URIs were inaccessible because the granted SAF
permission did not propagate to subfolder descendants.
Changes in EmulatorLauncher.kt:
- Keep SAF content:// URIs for Flycast instead of converting them to
FileProvider URIs, which break .zip loading. - grantParentTreePermission(): grant permission to the real SAF tree root
(via getTreeDocumentId) and add FLAG_GRANT_PREFIX_URI_PERMISSION so the
emulator can access every descendant document in the tree. - grantSubfolderContentsIfZip(): when the ROM is a .zip, locate the sibling
folder in the same directory, list every file inside it, and grant
explicit read permission to each individual file as a fallback.
Verified working: AW, DC, NAOMI, NAOMI2 and NAOMI GD with Flycast.
feat(ui): set all Material Symbols icons to filled and rounded
- Added iconTheme: const IconThemeData(fill: 1.0) to the global theme
in MaterialApp so all Material Symbols icons render with FILL=1. - Updated v_directory_picker.dart to inherit the global icon theme
via IconTheme.of(context).copyWith(...) instead of overriding it
with a plain IconThemeData, preserving the fill property.
fix(settings,update): gamepad index, dialog colors, and ROM scan flow
- GeneralSettingsContent: add Ignore hidden files to getItemCount and
selectItem to align gamepad navigation with UI order - UpdateDialog: change Later button background to match
SystemsUpdateDialog (tertiary color) - UpdateDialog: return true on Update Now so caller can distinguish
user choice - AppScreen: await UpdateDialog result and continue update/scan sequence
when user presses Later instead of aborting