Skip to content

Cygnus Player v1.0.5 Release - #8

Merged
FesterHead merged 4 commits into
mainfrom
develop
Aug 23, 2026
Merged

Cygnus Player v1.0.5 Release#8
FesterHead merged 4 commits into
mainfrom
develop

Conversation

@FesterHead

Copy link
Copy Markdown
Owner

📝 Description

This Pull Request mints Release 1.0.5 (Build 6), introducing official Android Auto integration, critical playback recognition bug fixes, audio engine hardening, developer workflow enhancements, and comprehensive documentation updates.

Key Highlights:

  • Android Auto Integration: Added required notification icon metadata, intent filter actions, and restored MediaBrowserService visibility while enforcing the "Immutable Journey" minimalist UX (disabled browsing and skip/next/prev controls via ForwardingPlayer).
  • Cache & Playback Stability: Implemented dynamic Media Session IDs to prevent AA cache ghosting and fixed a string interpolation bug in library item generation.
  • Audio Engine & File Picker: Hardened ReplayGain parsing in Media3MetadataExtractor for whitespace/dB formatting and restricted playlist picker MIME types to .m3u/.m3u8.
  • Developer Workflow & Tests: Added Robolectric unit tests (CygnusPlaybackServiceUnitTest), upgraded PowerShell aliases to v1.5 with DHU process management, and added developer guide documentation in README.md and TESTING_STRATEGY.md.
  • Version Synchronization: Synchronized version 1.0.5 across version.properties, VersionInfo.kt, README.md, CHANGELOG.md, AGENTS.md, CONTRIBUTING.md, and .github/PULL_REQUEST_TEMPLATE.md.

Fixes #7

🌌 Scope & Architecture Checklist

Please confirm that your Pull Request adheres to Cygnus Player's core constraints:

  • MP3 Playback Only: Changes are strictly for local MP3 audio files and M3U/M3U8 playlists.
  • Minimalist UX: Maintains single Play/Pause control; no seek bars or skip/navigation buttons added.
  • Linear Memory Footprint ($O(1)$): Low memory footprint relative to queue size maintained using primitive arrays (LongArray/IntArray) and Room sliding cursors.
  • Gapless & Audio Focus: Media3 gapless playback and Android Audio Focus handling preserved.

🧪 Testing Checklist

  • I have executed ./gradlew test locally and all unit tests pass.
  • New classes, interfaces, methods, and functions include full KDoc documentation (@param, @return).
  • No raw absolute file paths or unhandled exceptions introduced.
  • Version synced across version.properties, VersionInfo.kt, and README.md, and CHANGELOG.md updated (or release heading minted if releasing).

- Android Auto Integration & Fixes:
  - Resolve app recognition issue (#7) via SmallIcon metadata, MediaSessionService action, and legacy MediaBrowserService intent filter.
  - Enforce minimalist AA experience (disable library browsing and navigation controls via ForwardingPlayer).
  - Implement dynamic Media Session IDs to prevent phantom playlist caching.
  - Fix string interpolation bug in library item generation causing AA playback failures.
  - Add AA setup & Desktop Head Unit (DHU) emulator testing documentation and Robolectric unit tests.

- Audio Engine & UI Hardening:
  - Hardened ReplayGain parsing in Media3MetadataExtractor for whitespace variations and dB formatting.
  - Refined playlist picker MIME filtering for M3U/M3U8 files.
  - Added path sanitization in PlaylistPickerViewModel to prevent leaked object strings.
  - Refactored SharedPreferences to idiomatic Kotlin KTX edit blocks.

- Dev Tooling & Versioning:
  - Updated PowerShell aliases (v1.5) for environment sanitization and DHU process management.
  - Synchronized version 1.0.5 (build 6) across version.properties, VersionInfo.kt, README.md, CHANGELOG.md, AGENTS.md, CONTRIBUTING.md, and PR template.
- Update ctest PowerShell alias in README.md to execute JVM unit tests and device tests
- Update CHANGELOG.md and CygnusPlaybackServiceUnitTest to reflect full suite coverage
@FesterHead
FesterHead merged commit b20a27e into main Aug 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG]: App not available to Android Auto

1 participant