Skip to content

πŸš€ v1.1.0 β€” The "Native SMB" Update

Choose a tag to compare

@AverageConsumer AverageConsumer released this 27 Feb 00:45
· 89 commits to main since this release

Native SMB via Kotlin MethodChannel, folder downloads, redesigned onboarding, and 1,069 tests.

Highlights

  • Native SMB β€” Replaced the smb_connect Dart 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_connect dependency removed (replaced by native Kotlin implementation).
  • NativeSmbService Dart wrapper for com.retro.rshop/smb MethodChannel.
  • NativeSmbDownloadHandle / NativeSmbFolderDownloadHandle download handle types.