π v1.1.0 β The "Native SMB" Update
Native SMB via Kotlin MethodChannel, folder downloads, redesigned onboarding, and 1,069 tests.
Highlights
- Native SMB β Replaced the
smb_connectDart library with a Kotlin MethodChannel service (SmbService.kt), enabling folder downloads, progress reporting, and reliable timeout handling on Android. - Folder downloads β Games stored as multi-file directories (bin/cue, m3u) can now be downloaded as complete folders via SMB and FTP.
- Onboarding rework β Redesigned setup wizard with streamlined console configuration, local folder detection, and RomM integration.
- Gamepad button icons β SVG icon set (Xbox, PlayStation, Nintendo Switch) for context-aware controller hints.
Change Log
Added:
- Native SMB β Kotlin MethodChannel service replacing smb_connect library, with folder downloads, progress reporting, and 30s timeouts.
- Folder downloads β multi-file directory downloads (bin/cue, m3u) via SMB and FTP protocols.
- Gamepad button icons β SVG icon set (Xbox, PlayStation, Nintendo Switch) for controller hints.
- RomM config screen β full server management (add/edit/remove) with connection test, accessible from settings.
- Network constants β centralized timeout values (
NetworkTimeouts) shared across all providers. - File utilities β crash-safe atomic file move (
moveFile) with staging and cleanup.
Improved:
- Onboarding rework β redesigned setup wizard with streamlined console configuration, local folder detection, and RomM integration.
- FTP provider β host validation (hostname, IPv4, IPv6), injection protection, configurable timeouts.
- Web provider β security hardened directory parsing (path traversal, control chars, oversized hrefs filtered).
- Download service β folder-aware downloads for SMB and FTP with per-file progress.
- Friendly errors β expanded user-facing error mapping for network, auth, and provider failures.
- Console HUD / Quick Menu / Control Button β simplified rendering with gamepad icon integration.
Internal:
- 1,069 tests (up from 970) β new suites: SMB provider (14), FTP provider (8), Web provider (12), FocusSyncManager (32), OverlayPriorityManager (14), file_utils (5), friendly_error expansions.
smb_connectdependency removed (replaced by native Kotlin implementation).NativeSmbServiceDart wrapper forcom.retro.rshop/smbMethodChannel.NativeSmbDownloadHandle/NativeSmbFolderDownloadHandledownload handle types.