* Scrubbing Preview
Add Jellyscrub plugin support
* Fix syntax
* Some adjustments
Rounded corners
Fix switch
* refactor: switch to `StateFlow`
* refactor: remove `FrameLayout`
* refactor: move trick play retrieval to `onMediaItemTransition`
Only load trick play data for current item
Make it async
---------
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* fix: gesture conflict in seek gesture
* fix: gesture conflict in volume and brightness gestures
* refactor: move to separate method and add implementation for previous Android versions
* lint: run ktlintFormat
---------
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* feat: add video file metadata on `MediaInfoFragment`
* feat(metadata): add chips within a chipgroup to showcase major parameters
Set a "temp" text as default for chips since without it, the style resets when text is changed through code
(kind of a hacky fix)
* feat(parser): implement data model for VideoMetadata and parse function
* feat(metadata): show dolby/dts audio codecs and hide SDR display profile
* feat(dolby): add a dolby logo after the rating and per-theme color
* feat(settings): add a preference switch for showing detailed A/V & Subs info
* feat: add dolby logo for video and audio profile inside chip
* feat: handle different audio profiles and change raw names
* feat(audio): add atmos text with the audio codec itself
* feat: only parse metadata when item is a movie
Also correct spacing when there are no chips
* fix(metadata): check for DoVi title since codec shows as HDR10
* fixup!: parsing of audio codecs and display name
---------
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* Add intro skipper support
* Fix checking for 404
* Add back missing Intro class and dependencies due to rebase
* Add preference
* Clean up visibility logic
* Update skip intro button design
* Add proguard file to keep Serializable classes
* Move introCheck to a separate Runnable and fix Runnables are never cleaned up
* Simplify check before starting runnable
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* Update android-plugin to v7.4.0
* Set Java version to 11
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* Split app into core and app:phone
* Use global versionCode and versionName
* Clean up gradle dependencies
* Use string formatting inside getString function
* Move proguard file to app:phone
* Move app_navigation and BasePlayerActivity to app:phone
* Add buildTypes to core gradle and remove buildFeatures
* Add suffix core to core namespace
* Split code into 4 more modules: data, preferences, player:core and player:video
* Clean up some gradle files
* Clean up data gradle
* Remove duplicate Constants.kt
* Use AppPreferences in more places
* Split off strings
* Remove unused animations
* Make about_libraries strings non-translatable
* Move mpv assets to player:video module
* Make AppPreferences a Singleton
* Update dependency org.jellyfin.sdk:jellyfin-core to v1.4.0
* Remove ACCESS_WIFI_STATE permission
* Fix adding server
* Remove server already added error
Add the address if server already exists in database but the address doesn't
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* Migrate to media3
* Update docs
* Move display_extended_title to AppPreferences
* Move display_extended_title to AppPreferences p2
* Add MediaSession support to the player
* Fix mpv player
* Disable animations on tv player controls and rename the tv_control_view file
* New media3 decoder ffmpeg
* Add multiple addresses per server
* Clean up
* Change icon to globe
* Fix AddServerAddressDialog crashing on tv
* Fix navigation to main activity on tv
* Hide nav bar in UsersFragment and ServerAddressesFragment
* Add hint for server address
* Add mpv options: hwdec, hwdec-codecs, vo, gpu-api
* Add audio output option
* Use AppPreferences in companion object to set the vo
* Remove unused strings
* Use strings for mpv prefs
* Change default ao to audiotrack
* Clean up preferred language settings
* Add multiple users per server
* Remove unnecessary longClickListener
* Check if user is selected on startup
* Still create JellyfinApi even if no user is selected
* Already fill in the username when needing to re-login
* Add new network settings with socket timeout option
* Add socketTimeout to AppPreferences
* Format with ktlint
* Add request timeout and connect timeout as options
* New server db schema
Adds support for multiple addresses and users per server
* Fix crash when the only available server is deleted and app is restarted
* Set serverId as foreign key in User and ServerAddress
* Format using ktlint
* Bump ServerDatabase version to 2
* Fix deleted downloads
This commit fixes downloads getting deleted after a few weeks by android's cleanup system. This is fixed by downloading the files under the .download extension and renaming them when the download is completed.
* Add retry download feature
* Add indicator when download is ongoing
* Refactor download code
* Disable button on retry and clean up
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
activity 1.6.0 -> 1.6.1
material 1.6.1 -> 1.7.0
navigation 2.5.2 -> 2.5.3
jellyfin 1.3.6 -> 1.3.7
aboutLibraries 10.5.0 -> 10.5.1
Includes some additional changes to the material shape appearance to keep the current look
* Fix MPV subtitles zoom in
Closes#162
Some .ass subtitles will still be broken due to their forced stylings unless stripped.
* Move everything in a single if statement
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>