Skip to content

v1.0.7b1

Pre-release
Pre-release

Choose a tag to compare

@Xandir150 Xandir150 released this 28 May 16:48
· 110 commits to main since this release

1.0.7 beta 1

First beta of 1.0.7. Marked prerelease because the Android TV surface area is large and brand new — please file any regressions before this gets promoted to a stable 1.0.7.

The signed release APK is attached automatically by the Android Release workflow.

Fixes

  • DLNA browsing no longer crashes the app on slow renderers. A SocketTimeoutException from the SOAP browse request used to escape its coroutine and tear down the process. Now the timeout is caught, an empty result is returned, and the worst the user sees is an empty folder.
  • DLNA discovery is faster and more reliable. Device descriptions are fetched in parallel instead of blocking the SSDP receive loop, and the connect/read timeouts are larger (good for slow NAS boxes).
  • Toolbar logo decode no longer blocks MainActivity.onCreate. Moving the PNG decode + scale off the main thread fixes a likely source of MessageQueue.nativePollOnce ANRs on slower devices.

Player

  • Subtitle track menu with an explicit "Off" entry. Closes #6. The new menu mirrors across both eyes in SBS mode just like the audio menu does.
  • Audio loudness boost up to +24 dB. Closes #7. Powered by android.media.audiofx.LoudnessEnhancer, persisted globally, cycled from the first row of the audio menu (0 → +6 → +12 → +18 → +24 dB).
  • Aspect ratio control for 3D playback. Closes #3. New "Ratio" button in the player overlay cycles through Auto / 16:9 / 4:3 / 21:9 / 32:9 / 1:1 / 2.39:1. The choice is persisted per item in the Recent tab so faces stop getting elongated on existing 3D clips. Adapted from joric/Xplayer2 android-tv.

Android TV

Closes #8. Based on joric/Xplayer2 android-tv — thanks to @joric for the working reference implementation.

  • App now appears on Android TV / RayNeo / Google TV: LEANBACK_LAUNCHER intent filter, uses-feature declarations for leanback/touchscreen/camera marked required=false.
  • New 320×180 vector TV banner.
  • D-pad key handling in the player: LEFT/RIGHT seek -5 / +15 s, CENTER/ENTER toggles the controller, BACK collapses menus then the overlay, MEDIA_PLAY_PAUSE / SPACE toggle play.
  • D-pad navigation in the main UI: tabs are focusable, DPAD_DOWN drops focus into the active fragment, DPAD_UP from the first row returns to the tab strip.
  • Recent and Network list items are focusable: DPAD_RIGHT focuses the delete affordance, ENTER deletes. SMB shares can now be deleted from a TV remote.
  • PlayerActivity declares enough configChanges to survive a remote/keyboard plug event without restarting.

Build

  • Gradle 8.13 → 9.4.1, AGP 8.13.1 → 9.2.1, Kotlin 2.0.21 → 2.2.10.
  • Compose plugin matched at 2.2.10.
  • gradle-daemon-jvm.properties checked in (JetBrains JDK 21) so the build JVM is consistent across contributors.

Not in this release

  • VITURE 2D/3D auto-toggle: requires VITURE's closed SDK; not bundled here. The in-app SBS toggle still works as before, but you'll need to enable hardware 3D on the glasses themselves.
  • The fallback URI / MediaStore-resolved recents from joric's branch — separate refactor, deferred.