Commit graph

1155 commits

Author SHA1 Message Date
Jcuhfehl
598c11f299
Improve offline playback (#68)
* 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>
2021-11-27 12:18:41 +01:00
lsrom
8c5d0bebf0
Add strm support (#66)
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
2021-11-16 19:44:49 +01:00
lsrom
d7a47b0a3e
Add refresh (#59)
* 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>
2021-11-14 18:44:33 +01:00
Jarne Demeulemeester
98cb038c24
Server setup improvements (#67)
* 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
2021-11-14 18:20:19 +01:00
jarnedemeulemeester
44d0a34539
Upgrade androidx.core to 1.7.0 and add lifecycle deps 2021-11-08 23:24:34 +01:00
jarnedemeulemeester
fcc8273034
Fix tv checkServer 2021-10-31 16:35:10 +01:00
lsrom
f711d21f6a
Fix add server strings (#62)
* 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>
2021-10-31 16:09:39 +01:00
lsrom
8c90031165
Add customizable device name (#61)
* 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>
2021-10-31 11:43:02 +01:00
lsrom
d0673bc82b
Add missing string to default and CZ localization (#60)
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
2021-10-30 21:14:56 +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
Jcuhfehl
532e9adac1
Add offline playback (#51)
* 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>
2021-10-29 21:11:01 +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
lsrom
28014eaadf
Add Czech localization (#50)
* Remove unused string

* Add czech localization

Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
2021-10-24 18:11:19 +02:00
lsrom
b0b7d7f5b5
Add ability to swipe up and down to adjust volume (#48)
* 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>
2021-10-24 18:07:08 +02:00
lsrom
62d09b3566
Add person detail screen (#47)
* 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>
2021-10-24 17:45:59 +02:00
Jarne Demeulemeester
e9e849d9e4
Update dependencies and improve server discovery 2021-10-23 17:39:46 +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
newton181
e991fab24e
Enhace translations and add new key for search hint (#45)
* Make search hint translatable

* Add new key in string file for search hint

* Enhace and update spanish translations
2021-10-20 20:05:37 +02:00
Jarne Demeulemeester
c7a816ff6f
Sort items alphabetical on name 2021-10-12 20:41:08 +02:00
Jarne Demeulemeester
07d9ae676c
Add some spacing at bottom of media info fragment 2021-10-12 19:35:16 +02:00
Jarne Demeulemeester
234d44e9ce
Add placeholder (error) image for people
Fix #42
2021-10-12 19:21:54 +02:00
Jarne Demeulemeester
742ec71e56
Make ripple rounded just like other ui elements 2021-10-11 21:30:19 +02:00
jarnedemeulemeester
6beb5e8236
Move navigationBar color to v27 and v31 2021-10-10 22:00:58 +02:00
jarnedemeulemeester
8984493bb0
Remove InitializingFragment 2021-10-10 22:00:02 +02:00
jarnedemeulemeester
ac7c3405da
Add some icons to settings 2021-10-03 15:49:02 +02:00
jarnedemeulemeester
4c36785461
Add more shape styles + switch to material dialogs 2021-10-03 15:37:29 +02:00
jarnedemeulemeester
da39db03d0
Global shape theming 2021-10-03 11:43:34 +02:00
jarnedemeulemeester
976b56ce00
Add Android 12 dynamic colors 2021-10-03 11:07:28 +02:00
jarnedemeulemeester
f92efa31e8
Upgrade core-splashscreen and constraintlayout 2021-10-02 21:14:49 +02:00
jarnedemeulemeester
73fc37b4f1
Update material colors, dark mode pure black 2021-10-02 21:10:10 +02:00
jarnedemeulemeester
c43f9bad82
Add icon and name for debug and staging builds 2021-09-26 19:40:58 +02:00
Jarne Demeulemeester
b71118080c
Merge pull request #36 from jarnedemeulemeester/develop
Version 0.2.1
2021-09-23 10:02:30 +02:00
jarnedemeulemeester
44f7d6fa6d
Bump versionCode to 5 and versionName to 0.2.1 2021-09-23 09:53:45 +02:00
jarnedemeulemeester
823330273d
Upgrade kotlin to 1.5.31 2021-09-23 09:53:12 +02:00
jarnedemeulemeester
18b2867c3b
Create staging build type after release 2021-09-23 09:40:55 +02:00
jarnedemeulemeester
7fe197e3b6
Add mpvlib to proguard rules
Fix #35
2021-09-23 09:39:51 +02:00
Jarne Demeulemeester
ac54e40555
Merge pull request #34 from jarnedemeulemeester/develop
Version 0.2.0
2021-09-20 11:24:40 +02:00
jarnedemeulemeester
212f35cb8b
Bump versionCode to 4 and versionName to 0.2.0 2021-09-19 19:06:55 +02:00
jarnedemeulemeester
f4d2859090
Allow video to extend into the display cutout 2021-09-19 18:55:27 +02:00
Jarne Demeulemeester
1cbd08c517
Merge pull request #33 from newton181/newton181-spanish
Translate to spanish string files
2021-09-19 16:57:52 +02:00
jarnedemeulemeester
4549ab51a7
Update readme with new MPV Player and banner 2021-09-19 11:59:22 +02:00
jarnedemeulemeester
19e33c6404
Move some strings to strings.xml 2021-09-19 11:53:36 +02:00
jarnedemeulemeester
7509916ff4
Move libmpv lib out of seperate directory 2021-09-19 11:30:04 +02:00
jarnedemeulemeester
90d3cb8a7b
Update Jellyfin sdk to 1.0.3 2021-09-19 11:27:54 +02:00
jarnedemeulemeester
1d0f2b3358
MPVPlayer: Start from playback position 2021-09-18 21:11:45 +02:00
jarnedemeulemeester
64b86f2b40
MPVPlayer: Support for software decoding + clean up 2021-09-18 15:17:20 +02:00
jarnedemeulemeester
0baef5ec2e
MPVPlayer: Improve track selection and some code cleanup 2021-09-17 11:55:35 +02:00
jarnedemeulemeester
87edeabb9a
MPVPlayer: Use preferred languages 2021-09-16 19:00:11 +02:00