v1.0.7b1
Pre-release
Pre-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
SocketTimeoutExceptionfrom 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 ofMessageQueue.nativePollOnceANRs 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_LAUNCHERintent filter,uses-featuredeclarations for leanback/touchscreen/camera markedrequired=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.
PlayerActivitydeclares enoughconfigChangesto 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.propertieschecked 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.