* 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>
* 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
* Merge MainActivity and MainActivityTv
* Merge AddServerFragment and TvAddServerFragment
* Merge LoginFragment and TvLoginFragment
* Add new focus effect
* Add libraries to tv home
* Fix home empty when navigating back on mobile
* Add loading indicator to home fragment
* Add empty LibraryFragment
* Add focus outline to settings button
* Use DiffCallback for updating home fragment
* Visually upgrade MediaDetailFragment
* Make all home items focusable in touch mode
* Add new focus border to person item
* Add LibraryFragment layout for TV
(Whilst also making a clusterfuck of the navigation)
* Add missing try-catch in HomeViewModel
* Don't show CancellationException on AddServerFragment
* Fix a few crashes plus errors
* Add option to display extended episode title (SXX:EXX - Title) in player
* ocd fix
* add null check condition
* Move setting to player category
Yeah this would fit in either Appearance or Player. But I lean more towards Player.
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
* Add caching to settings with ability to choose cache size
* Remove unused parameter from Api
* Add glide module for cache setup
* Clean up image handling in adapters
* Move caching to it's own category
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>
* Improve AddServer fragment
* Improve login fragment
With other general improvements
* Resize the addserver and login fragments when the soft keyboard appears
* Upgrade androidx.core to 1.7.0 and add lifecycle deps
* New UI state system for AddServerFragment
This uses StateFlow for the state and SharedFlow for navigation
* Remove public flows and use collector functions
* Update Login ViewModel and Fragment
* Speed up server discovery
* Better login error message
* Add strings for errors when adding server
* Use add_server_error_version string instead of version
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
* Add ability to name your device
* Update device name real time
* Remove unnecessary deviceInfo and apiClientFactory
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 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>