Commit graph

25 commits

Author SHA1 Message Date
Jarne Demeulemeester
25efbb6eab
Temporary remove all TV code (#229)
* Remove all tv code

* Remove banner
2023-01-07 00:52:39 +01:00
Jarne Demeulemeester
54f0b457f5
Convert TrackType to kotlin enum 2022-12-29 14:08:30 +01:00
Jarne Demeulemeester
6572d7e85b
Multiple server addresses (#208)
* 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
2022-12-03 20:53:14 +01:00
Jarne Demeulemeester
aeabb620ee
Multi-user support (#199)
* 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
2022-11-19 21:18:50 +01:00
Jarne Demeulemeester
5895b2c8d8
Add network settings (#192)
* Add new network settings with socket timeout option

* Add socketTimeout to AppPreferences

* Format with ktlint

* Add request timeout and connect timeout as options
2022-11-05 23:59:44 +01:00
Jarne Demeulemeester
0bd1bb30c8
Fix app crash on ErrorDialogFragment.kt configuration change 2022-11-02 11:25:33 +01:00
Jarne Demeulemeester
d3b4fe6ea3
Servers database v2 (#177)
* 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
2022-11-01 21:15:42 +01:00
Jarne Demeulemeester
ad5e722d44
Introduce klint (#186)
* Add ktlint plugin

* Make code ktlint compliant

* Make code ktlint compliant
2022-10-29 21:17:48 +02:00
Jarne Demeulemeester
bcdada538d
Upgrade ExoPlayer to 2.18 (#126)
* Upgrade ExoPlayer to 2.18

* Change the position polling from every 2 to every 5 sec

* Make internalMediaItems non-nullable

* Clean up mpv track names

* Reduce explayer ffmpeg extension size by not including all decoders

Removed decoders vorbis, opus, flac, pcm_mulaw, pcm_alaw, mp3, aac because these are already supported by Android.

* Clean up preferredLanguage preferences
2022-07-03 14:02:32 +02:00
Jarne Demeulemeester
751ee75c3e
Provide better error messages with stacktrace (#119)
* Provide better error messages with stacktrace

+ clean up
+ fix error details popup in MediaInfoFragment

* Simplify exception passing by sending complete exception to the dialog

* Use viewLifecycleOwner with repeatOnLifecycle
2022-06-06 14:41:37 +02:00
Jarne Demeulemeester
fa2f93ca8a
Simplify track name creation 2022-04-26 18:47:57 +02:00
NIK679
92e4b8eafc
Add option to disable subtitle in mpv (#110)
* add empty subtitle track

* toggle selected variable

* does this work

* Revert "toggle selected variable"

This reverts commit 87589f1d34e741205674e66855b53d79a1f70adb.

* this should work

* this should work 2.0

* remove empty track if there are no subtitle tracks
2022-04-23 19:46:06 +02:00
lsrom
07a9e2a853
Add basic tv support (#58)
* 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>
2021-10-30 19:46:51 +02:00
lsrom
308d97068f
Refactor playback code (#55)
* Refactor playback code

* Fix back state when playing media and rotating device

Problem was playerItems were re-emitted on fragment creation after config change. LiveData by design emit on every subscribe (observe) so to avoid that there are several possibilities.

1) easiest, observe playerItems not in onCreate but in playButton.clickListener. Stupid, since then we need to remember to only observe in this special place.

2) SingleLiveData - kind of hacky since LiveData were designed to behave this way so we don't want to go against their design.

3) Use Kotlin flow instead.

I chose the flow approach since it's Kotlin native and modern way to do things and behaves much more Rx-like. Since now we need to call collect instead of observe and launch in coroutine, I added utility method to make this easier. Also, in the future we might want to improve this further, either by coming up with new way entirely or by at least moving this to parent fragment from which all fragments that want to play media will inherit and thus making it easy to use and maintain.

Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
2021-10-26 18:11:22 +02:00
jarnedemeulemeester
69503f504d
Remove hardcoded strings from dialogs 2021-10-23 13:35:37 +02:00
jarnedemeulemeester
aa1ef5ca5b
Add sorting options to library (collection) 2021-10-23 11:29:22 +02:00
NIK679
11ff3b4e16
Add playback speed control to the player (#46)
* add playback speed control to MPV player

* add playback speed control to exoplayer

* remove unnecessary method

* remove unused import

* use gauge icon from lucide

* use gauge icon from lucide

* fix the gauge icon
2021-10-20 20:16:43 +02:00
jarnedemeulemeester
4c36785461
Add more shape styles + switch to material dialogs 2021-10-03 15:37:29 +02:00
jarnedemeulemeester
0baef5ec2e
MPVPlayer: Improve track selection and some code cleanup 2021-09-17 11:55:35 +02:00
jarnedemeulemeester
9cddd50d0e
Select audio and subtitle tracks 2021-09-15 23:13:59 +02:00
jarnedemeulemeester
25ac5524d7
Rework how player items are created
Add support for intros and improve loading speed
2021-08-26 15:36:56 +02:00
jarnedemeulemeester
f2ce030856
View detailed error message for playerItemsError 2021-08-22 11:47:25 +02:00
Jarne Demeulemeester
e69a653453
Get mediaSources and select version of movie 2021-07-11 16:44:46 +02:00
Jarne Demeulemeester
1171e66076
Improve project folder structure 2021-06-09 21:36:05 +02:00
Jarne Demeulemeester
4eac70ff69
Add DeleteServerDialog 2021-06-08 11:47:29 +02:00