jellyfin / jellyfin-android

Android Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
1.57k stars 251 forks source link

ExoPlayer: Implement media segment support #1507

Open jakobkukla opened 1 week ago

jakobkukla commented 1 week ago

Initial support for media segments.

Most of this is shamelessly copied from the Android TV implementation in https://github.com/jellyfin/jellyfin-androidtv/pull/4052. @nielsvanvelzen, I tried to reflect that in the commit message. Let me know if that's a problem.

Changes

The playback related implementation is pretty much copied 1:1 from ATV. This implements the Skip and Nothing actions. The Unknown segment type is not supported. AskToSkip is not implemented yet but I plan to do so in a following PR.

I reused the settings from the web client by implementing a JS plugin and subscribing to settings changes. I usually try to avoid JavaScript in my daily life and have never worked with the nativeshell plugin system before. I'd appreciate if you'd take a closer look at these changes.

On another note: I'm not quite sure when to use koin's inject() vs get(). I tried to look at how the objects were injected in other places and followed that.

Issues

Depends on #1506 Fixes #1500

felixschndr commented 1 week ago

Looking forward to this being merged, thank you for your work @jakobkukla!