* Convert MediaFragment to use new UiState
* Convert PersonDetailFragment to use new UiState
* Load PersonDetail data on start
* Convert FavoriteFragment to use new UiState
* Convert SeasonFragment to use new UiState
* Convert SearchResultFragment to use new UiState
* Convert EpisodeBottomSheetFragment to use new UiState (WIP)
* Convert EpisodeBottomSheetFragment to use new UiState (Part 2)
* Convert LibraryFragment to use new UiState
* Convert DownloadFragment to use new UiState
* Convert HomeFragment to use new UiState
* Convert MediaInfoFragment to use new UiState (WIP)
* Convert MediaInfoViewModel to use new UiState (Part 2)
* Convert ServerSelectViewModel to use new UiState (Semi)
* Fix MediaInfoFragment for downloaded movies
* Add brightness swipe control
* Add background to the overlays
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
* Fix download playback tracking bug
* Remove unused permission
* Add overview text to downloadmetadata
* Add visual indicator of whether item is downloaded
* Use downloaded item when available
* Fix "null" overview text in download metadata
* Fix crash when playing downloaded file with mpv
* Clean up
Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>
* Add refresh to home fragment
* Remove forgotten code
* Remove unnecessary condition and fix HomeSection equality check
* Make HomeFragment fragment view model again
* Add order dependent check for home items equality
* Fix loading state overwriting error state on home refresh
* Revert to older swiperefreshlayout version
* Fixing error and loading state
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
* Add basic leanback support
* Add TV home fragment
Adds basic media browsing screen for TV. Shows Home screen media.
* Fix double emit when loading user views
* Fix bug when going back to this screen would duplicate menu items
* Add basic media detail fragment
* Add ability to navigate to detail fragment
* Fix imports and null safe calls
* Fix displaying of home item view type media files
* Playback refactor
* Add basic Tv player controls and split PlayerActivity
* Update strings
* Add progress bar to partially played items on TV home screen
* Track selection dialog PoC
* Update track selection WIP
* Show track selection of focus change
* Fix series display from home
* Minor updates
* Add back button to media detail
* Zero effort add server and login
* Fix colors
* Fix back button from home going back to init fragment
* Add settings button to home screen
* Fix crash after goig back from media detail fragment
* Show seasons and cast
* Merge branch 'develop' into add_basic_tv_support
# Conflicts:
# app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt
# app/src/main/java/dev/jdtech/jellyfin/dialogs/VideoVersionDialogFragment.kt
# app/src/main/res/navigation/app_navigation.xml
* Fix cast title being shown with empty cast list
* Remove useless method
* Remove unused parameter
* Fix crash due to colorOnPrimary not existing in Leanback styles
* Remove unused theme
* Fix home to addserver fragment navigation
* Reuse home item layouts
This creates some duplicate code which will probably be cleaned up later
* Ignore more MissingDefaultResource
* Add banner
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
* Add offline playback
* Remove unused values
* Replace downloadutilities extension functions with normal functions
This is to not polute the namespace of fragment and context.
* Replace default Android icons with those from lucide
* Fix deleting downloaded movie
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
* Add ability to swipe up and down to adjust volume
Created AudioController to adjust global volume for media channel. Alarm, system and other volume levels are unaffected. This way it doesn't need specific implementation for separate players. During swiping system volume slider is shown and it is possible to change direction mid-swipe.
AudioController should probably be singleton and provided by DI but currently PlayerActivity is handling all the playback so it seemed unnecessarily complicated.
Sensitivity can be adjusted by threshold value in VerticalSwipeListener.
* Add audio controller class
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
* Add person detail screen
Displays actor/actresses portrait and text info + list of movies/show this person starred in. Text info is max 5 lines with View More button if ellipsized. View More toggle is reset upon orientation change since in landscape mode ellipsize might not be necessary.
* Remove useless StarredInAdapter.kt
* Fix image view shape
* Improve UI
Not exactly how I would like it but will do for now
* Add error handling
Adds a lot of LiveData which may not be ideal, but is better than crashing due to connection errors.
Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>