Skip to content

v1.2.0-RC.1

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Oct 21:45
· 13 commits to main since this release
ed72c8f

YumaPlayer v1.2.0-RC.1

A massive milestone update representing over a month of intensive development and a complete architectural overhaul. This release introduces a dedicated low-level audio DSP engine, the YDS 2.1 design system with a draggable Telegram-spec navigation island, native Spotify browsing, Canvas loops, robust proxy networking, and deep performance optimizations.


✨ Major Highlights

🎛️ Audio Engine & Smart Automix (:core:audio-dsp)

  • Dual-Deck Continuous Crossfade: True gapless playback using two independent, synchronized audio deck controllers with atomic role swapping. Zero silence between tracks.
  • DJ Transition Intelligence: Automated outro/intro cue detection, energy cliff analysis, BPM matching, and complementary bass-swap filters (0.45–0.55 window).
  • Audiophile Codec Pipeline: Dedicated 24-bit packed PCM processing, Kopus-first Opus decoding with MediaCodec fallback, and native FLAC length resolution.
  • Stall Guard & Recovery: Intelligent fallback to hard cuts during network drops, background stream revival upon reconnection, and strict source-scoped cache identities.
  • N+1 Prefetching: Seamless background caching of upcoming tracks into the local download cache.

🏝️ YDS 2.1 & Gesture Physics

  • Draggable Navigation Island: Compact, draggable floating dock inspired by Telegram specifications, featuring dynamic corner morphing, scroll-hide sync, and local haptic feedback.
  • Unified Player Sheet V2: Re-engineered gesture physics with GPU-accelerated backdrop blur (Haze), isolated drag layers, and independent artwork scaling.
  • Canvas Backdrop Engine: Hardware-accelerated background video loops supporting up to 4K resolution, backed by an isolated cache to prevent ghosting during track changes.
  • Spoiler Veil: Interactive Telegram-grade particle engine to obscure tokens and sensitive settings.
  • Particle Splash Screen: Customizable startup burst physics with shape selectors and offline state management.

🟢 Native Spotify Catalog

  • Native Album Screen: Browse Spotify albums and custom playlists directly inside Yuma without external app dependencies.
  • Two-Tier Search & Deduplication: Multi-stage scoring algorithm with cross-script deduplication and semaphore-throttled YouTube matching.
  • Locale-Aware Metadata: Automatic synchronization with the device's locale and language headers.

🛡️ Network, Stability & SponsorBlock

  • SponsorBlock Integration: Configurable in-app segment skipping (fillers, reminders, music hooks).
  • SOCKS5 Proxy Support: Native proxy routing with JVM Authenticator support.
  • Stream Decryption v3: Updated signature deobfuscation and PoToken generation routines to handle strict YouTube stream delivery.
  • Memory Leak Elimination: Integrated LeakCanary 2.14, resolved theme lifecycle leaks, stopped background palette extract loops, and bounded karaoke memory allocations.

🛠️ Detailed Changes

Playback & Queue

  • Auto-scroll to currently playing track inside the queue layer.
  • Reordered queue operations to use immutable item UIDs instead of volatile layout indices.
  • Bounded memory allocations for karaoke lyrics models to eliminate Out-Of-Memory crashes.
  • Extracted Discord RPC and playback history tracking into isolated specialists.

Integrations & Settings

  • SponsorBlock Controls: In-app settings to auto-skip or notify for sponsor segments, music hooks, fillers, and subscription reminders on YouTube Music tracks.
  • Random Background on Startup: Optional dynamic styling that rolls a random home background palette upon launching the app.
  • Enhanced Privacy & Security: Sensitive tokens and proxy credentials can now be concealed with the interactive Spoiler Veil.

UI & Screens

  • Home Screen: Adaptive card dimensions, alternating contextual greeting header, and isolated category chip sections with zero layout jump.
  • Canvas Player Progress: Replaced Material 3 slider with a custom Canvas-based PlayerProgressSlider with transition markers.
  • Modular Screen Architecture: Decomposed MainActivity down to 145 lines; refactored Artist, Album, Playlist, and Search screens into strict contracts and components under 250 lines.
  • About Screen: Integrated real-time team, respecters, and translator credits directly from repository data.

Localization

  • Added full support for Slovak and Georgian.
  • Comprehensive translation updates across dozens of languages via Hosted Weblate: Indonesian, Spanish, Japanese, German, Hindi, Italian, Turkish, Portuguese (Brazil), Ukrainian, Russian, Arabic, French, Dutch, and more.

👥 Contributors & Special Thanks

Massive thanks to everyone who contributed code, helped translate YumaPlayer on Hosted Weblate, and supported the project:


⚠️ Known Limitations for RC.1

  • 18+ Search Videos: Playback of age-restricted video streams originating directly from raw search queries is temporarily restricted due to client authentication checks; official artist audio tracks and albums remain unaffected.
  • Automix Background Analysis: Initial local track analysis runs silently in the background on the first playback pass before transition markers are stored in the database.