github sfsakhawat999/mpvRex v4.4.0
mpvRex v4.4.0

5 hours ago

mpvRex v4.4.0 is here! This release introduces a beautiful new Glass Theme player UI, customizable circular seek animations, embedded cover art thumbnails, advanced zoom controls, a redesigned MoreSheet, significant playback performance improvements, and dozens of stability and localization fixes.


🔥 Glass Theme Player UI

The entire player interface has been reimagined with a sleek glass-morphism design language:

  • Glass Controls & Seekbar: Player controls, buttons, title bar, sliders, OSD, and slide-to-unlock all render with translucent glass backgrounds.
  • Glass Seekbar Container: Seekbar and timestamps are wrapped in a unified glass container row with refined capsule paddings.
  • Glass Speed Indicator: A compact glass-themed speed indicator with animated speed button transitions.
  • Glass Shorts Controls: Shorts player controls now use the glass style with a toggleable back button and outlined tab icons.
  • White Progress Bar: Added a toggle for a clean white video progress bar on the player screen.

✨ New Features

  • Mark As New: Introducing a new "Mark As New" media state — manually mark any video as New and it renders a forced NEW badge, even on older files. Watched state is cleared on last played, with active batch-based global last played highlighting for media and folders and per-folder watched/active highlight resolution.
  • Circular Double-Tap Seek: Implemented a fully customizable circular double-tap seek overlay with configurable summary, default-on for new users, and smooth transition animations.
  • Embedded Cover Art Thumbnails: Support for extracting embedded cover art and sibling external artwork as local video thumbnails (closes #158, closes #190).
  • Advanced Zoom Controls: Independent video scaling and black bar removal controls. (Thanks @jhaiian!)
  • MoreSheet Tabs: Added Aesthetics, Gestures, and Controls tabs to the MoreSheet bottom sheet with preference-style orientation selector.
  • Bottom Controls Layout: Added bottom controls below seekbar and "Show controls on play start" toggle to ControlsTab.
  • Add to Playlist in Library: Enabled "Add to Playlist" action in Media Library view mode.
  • Playlist Grid Columns: Playlist grid now respects folder column settings with center-aligned folder titles.
  • Updated mpv-lib: Bumped mpv-lib to v0.0.7 and replaced local AAR with remote dependency from GitHub Pages.
  • Spanish Translation: Updated Spanish translation and fixed typos in GPU error messages (#214). (Thanks @FFSA47!)
  • Arabic Translation: Continued Arabic localization with new strings, pluralization fixes, and hardcoded string extraction (#196, #201, #219). (Thanks @AhmedRX20!)
  • i18n Hardcoded Strings: Extracted hardcoded strings in player controls, Advanced settings, PlaylistSheet, About, ConfigEditor, Appearance, and Gesture screens (#192, #202, #204, #208, #211). (Thanks @AhmedRX20!)

⚡ Performance & Optimizations

  • Per-Instance MPV Observers: Observe all UI-consumed properties (time-pos, duration, tracks) per-instance to survive background resume and prevent frozen UI.
  • Gesture JNI Elimination: Eliminated per-event JNI reads during pan and zoom gestures for smoother interaction.
  • Reactive StateFlow: Replaced volatile polling loop with reactive StateFlow in MainScreen and consolidated playback state observers into debounced flows.
  • Coroutine Sub-Seek: Replaced handler delay with coroutines for mpv sub-seek position diff calculation.
  • Theme Palette Update: Updated default theme palette to match app logo color #3B82F6.
  • Grid/List Styling: Left-aligned grid view card elements, aligned font weight with list view, and made scrollbars conditional and fixed size.
  • Default Preferences: Pan/zoom disabled by default for new installs; seekbar style defaults to Standard; showSeekBarWhenSeeking disabled by default.

🐛 Stability & Bug Fixes

  • Native Teardown Crash: Synchronized libmpv native teardown and surface detachment to prevent crashes (Fixes #216).
  • ANR Prevention: Added bounded timeout to runBlocking in onDestroy to prevent UI thread ANRs.
  • Frame Flash Fix: Suppressed first frame flash during video switching and on video resume using paused load.
  • Subtitle Deletion Bug: Prevented local subtitle file deletion on track remove and wrapped download response in use block.
  • Playback State Lookups: Prioritized file path matching over display name in playback state lookups.
  • Slot-Table Corruption: Hoisted conditional remember and LaunchedEffect calls to prevent slot-table corruption in file browser and Shorts player.
  • Browser Selection: Persisted selection manager across reloads, fixed hard refresh on resume, and aligned card/list selection outlines.
  • Seek Layout Clipping: Eliminated circular seek layout bounds clipping during transitions and fixed chevron glitch.
  • Navigation Bar Padding: Conditionally applied bottom navigation bar padding to player controls.
  • Subtitle Source Fix: Selecting "All" subtitle sources now correctly checks all sources (#198). (Thanks @sharifmdathar!)
  • Pluralization Fix: Fixed Arabic/Spanish plural handling for horizontal video duration string (#217). (Thanks @AhmedRX20!)

Checksums

Variant SHA-256
arm64-v8a c46f0c6d8f0992e42687bde91522deb6de5fa8cf53ac8c754af793f369874320
armeabi-v7a 11fe03908ecef30c03f75c98e26b343e16f32a3e241632b5dc5f8c28b86b83c7
Universal 3c84411ebdad1031691d844178345e4e50ad19b6977c608c6c2d801e5ffe418c
x86 cb3b3e7ff119d69e6603462305e8712ea1d16598f8dd0a636fbcac0dee5ca5e0
x86_64 01cea482110978fa1c79035611685933aff97c159b5cb950605406b2dae79434

Don't miss a new mpvRex release

NewReleases is sending notifications on new releases.