Commit graph

163 commits

Author SHA1 Message Date
cd16b
674699aeab fix code 2024-01-23 09:58:26 +01:00
cd16b
f9454029f7 clean code 2024-01-22 22:59:04 +01:00
cd16b
2b9831af56 fix next episode no credits 2024-01-22 19:59:01 +01:00
cd16b
916d71a085 fix PlayerActivityViewModel.kt 2024-01-22 15:40:53 +01:00
cd16b
4a3a22de37 fix PlayerActivityViewModel.kt 2024-01-22 15:24:49 +01:00
cd16b
85ff16d843 skip credits 2024-01-22 13:41:40 +01:00
cd16b
92eaefe6e1 skip credits 2024-01-22 13:40:45 +01:00
Yash Garg
833fc95545
chore: use type-safe project accessors (#622) 2024-01-17 21:00:34 +01:00
Rogério Mendes
1b0d151208 chore(translate): (Portuguese (Brazil))
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pt_BR/
2024-01-05 23:30:01 +01:00
Pysta
071c87d6cb chore(translate): (Slovak)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/sk/
2024-01-01 20:30:01 +01:00
cd16b
fdad0079aa chore(translate): (Italian)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/it/
2024-01-01 20:30:01 +01:00
Jarne Demeulemeester
55427036b2
feat(phone): use custom track selection dialog for default player
Use media3 track type instead of mpv track type
Simplify track selection dialog
2024-01-01 12:23:53 +01:00
Jarne Demeulemeester
a6ebb89b78
feat(tv): allow audio and subtitle tracks to be disabled
Closes #608
2024-01-01 00:31:13 +01:00
Jarne Demeulemeester
92f1cf7eee
feat(tv): disable unsupported tracks in dialog 2023-12-31 21:32:37 +01:00
Jarne Demeulemeester
96288db877
refactor(mpv): get rid of last reference to findroid specific code and remove hwdec-codecs and gpu-api options from settings
You will later be able to change hwdec-codecs and gpu-api options using mpv.conf
2023-12-31 16:16:14 +01:00
Jarne Demeulemeester
707e332642
refactor(mpv): remove last exoplayer references 2023-12-31 00:48:18 +01:00
Jarne Demeulemeester
3bcd652e32
feat(phone): disable audio track type
And add back the option to disable the subtitle track type
2023-12-31 00:44:39 +01:00
Jarne Demeulemeester
7171ec72c1
feat: android tv (#598)
* Add AddServerScreen

* Upgrade androidx-compose-material3 and androidx-compose-ui to alpha

* Add DiscoveredServerComponent

* Show discovered servers

* Add navigation using compose-destinations

* Implement Loginscreen

* Start of HomeScreen

* Use coil for home screen images and update layout with spacers

* Select correct startRoute based on conditions

* Upgrade compose material3 to 1.1.0-alpha05

* Add series title, max 1 line, padding

* Upgrade dependencies

* Switch to TvLazyColumn and TvLazyRow

* Add header to `HomeScreen`

* Add progress bar to Continue watching items

* Limit the number of lines under Movie or Show and use correct episode text

* chore: run ktlintFormat

* ci: assemble tv

* feat: `LibraryScreen`

* fix: update to reworked items system

* chore(deps): update androidx-paging-compose and compose-destination

Also fix lint issue on HomeScreen

* feat: start using androidx.material3 composables

* feat: add coil svg

* feat: experimenting with cards

* lint: fix linting issues

* feat: server select screen

* build: upgrade dependencies

* lint: run ktlintFormat

* feat(ServerSelectScreen): add "No servers found" text

* feat: update AddServerScreen

* feat: implement `UiText.asString()` composable

* lint: run ktlintFormat

* refactor(phone): remove livedata from `ServerSelectScreen`

* feat: add `UserSelectScreen`

* feat(UserSelectScreen): load user's profile picture

* feat: update LoginScreen

* feat: update progress indicator on `AddServerScreen`

* fix: change color of `ServerComponent`

* style(ServerSelect): use material typography

* chore: update ktlint config in build.gradle

* style: use material typography

* refactor: move home screen to separate layout function so it can be previewed

- Introduce dummy items
- Fix `UiText.asString()` composable

* refactor: preview `LibraryScreen`

* refactor: preview `ServerSelectScreen`

* refactor: preview `AddServerScreen`

* refactor: preview `UserSelectScreen`

* refactor: preview `LoginScreen`

* lint: run ktlintFormat

* feat: switch servers

* feat: main screen tabs navigation

* feat: add Live TV tab (not shown for now)

* chore: remove libraries from `HomeViewModel`

* chore: change colors of selected tab

* feat: new item card component

* chore: remove `HomeItem.Libraries`

* style: update spacing

* feat: add findroid icon and profile button on main screen

* style(main): add gradient background

* fix: use "latest" + library name in home screen

* fix: navigate from LoginScreen and UserSelectScreen to MainScreen

* style: update tab colors

* fix: remove reference to `HomeItem.Libraries` from `ViewListAdapter`

* chore: update kotlin compiler to 1.5.0

* feat: add horizontal item card variant

* feat: `LibrariesScreen`

* feat: `LibraryScreen`

* fix(`LibraryScreen`): remove hardcoded library name

* feat: `MovieScreen`

* feat(`MovieScreen`): Make trailer button work

Also hide the button when there is no trailer

* refactor(`MovieScreen`): move click logic out of layout

* refactor: create `FindroidImages` which holds all image uris

* build: upgrade androidx.tv to 1.0.0-alpha08

* chore: update compose libraries

* chore: update compose compiler to 1.5.1

* fix(ItemCard): only show progress when horizontal

* refactor: clean build.gradle.kts

* build: up minSdk to 28 and targetSdk to 34

* refactor: use spacings to provide paddings (#443)

* feat: add Spacings in MaterialTheme

* style: use MaterialTheme.spacings in layouts

Using sizes in Spacer & padding & PaddingValues to standardize it.

* fix: linting issues and a few paddings

* feat: use spacings in `LibraryScreen`

* feat: use spacings in `MovieScreen`

* fix: missing trailing comma

* refactor: replace hardcoded spacer in ItemCard with spacing

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>

* build: migrate to ksp and upgrade compose compiler

* build: upgrade compose libraries

* fix: align with main codebase

* chore: update agp to 8.1.3

* chore: update ksp and compose-destinations

ksp 1.9.10-1.0.13 -> 1.9.20-1.0.14
compose-destinations 1.9.51 -> 1.9.54

* refactor(UserSelectViewModel): use channel for events

* feat: basic video player

First implementation of the video player.
Uses the basic player view with no custom layout.
Only media keys are passed to the PlayerView.

* feat: show screen

Still a work in progress

* fix: make player background black

* fix(player): keep screen on

* feat: add border around focused tab

* lint: run ktlintFormat

* feat: focus improvements

* feat: logo for main screen

* fix: remember tab position

* feat: add loading indicator to main screen

And fix home and libraries screen list refresh on navigating back

* feat: add seasons to show screen

* feat: add season screen

* feat: add progress badge

* chore(deps) update dependencies

android-plugin 8.1.3 -> 8.1.4
androidx-activity 1.8.0 -> 1.8.1
androidx-media3 1.1.1 -> 1.2.0
coil 2.4.0 -> 2.5.0
kotlinx-serialization 1.6.0 -> 1.6.1

* ci: upload tv artifacts and don't build universal apks

* chore: get rid of deprecated android.defaults.buildfeatures.buildconfig

* build: upgrade dependencies

android-plugin 8.1.4 -> 8.2.0
androidx-room 2.6.0 -> 2.6.1
androidx-work 2.8.1 -> 2.9.0
jellyfin 1.4.5 -> 1.4.6

compose compiler 1.5.4 -> 1.5.5

* fix: workManagerConfiguration is now a property

* feat: add profile picture to main screen

* feat: start of settings screen

* refactor: base tv theme on normal compose material theme

* chore(deps): update kotlin to 1.9.21

kotlin 1.9.20 -> 1.9.21
ksp 1.9.20-1.0.14 -> 1.9.21-1.0.15
compose-compiler 1.5.5 -> 1.5.6

* feat(settings): add categories and pop backstack when navigating to main screen

* feat(settings): nested settings and switch setting

* feat(settings): settings select component

* feat(settings): icons for cache and about

* feat(settings): add option to toggle mpv player

* feat(settings): move preference value logic to viewmodel

* feat(settings): add dependencies

* chore: update compose compiler

compose-compiler 1.5.6 -> 1.5.7

* feat(settings): add settings detail select card

New sub settings screen with different layout
Settings detail select card to select an option

* feat: play episode from home screen

* feat(player): basic custom overlay

Courtesy of Android TV JetStreamCompose sample

* feat(player): add track selection dialog

* feat(player): add media session and clean up dpad events

* refactor(mpv): implement track selection via TrackSelectionParameters

Need to add ability to disable track type

* feat: implement watched and favorite buttons

* refactor: remove unused PreferenceType enum

---------
2023-12-30 22:20:20 +01:00
Meguro
42650ee6c4 chore(translate): (Vietnamese)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/vi/
2023-12-11 05:33:05 +01:00
Francisco Zorat
82dcbb4aaa chore(translate): (Spanish (Latin America))
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/es_419/
2023-11-24 03:30:00 +01:00
Jarne Demeulemeester
218b4f1af4
refactor: replace SharedFlows with Channels for sending events 2023-11-06 23:42:00 +01:00
CodeName393
6c3360f8e7 chore(translate): (Korean)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/ko/
2023-10-29 09:06:00 +01:00
Téo Haÿs
51f0569665 chore(translate): (French)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/fr/
2023-10-24 20:03:31 +02:00
jarnedemeulemeester
e210691705
refactor: move compileSdk, buildTools, minSdk, targetSdk and java to buildSrc Versions 2023-10-23 13:00:24 +02:00
Jarne Demeulemeester
16dd40d489
build: move app and ktlint version to buildSrc Versions 2023-10-15 15:43:55 +02:00
Rogério Mendes
5d1ebb0e65 chore(translate): (Portuguese (Brazil))
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pt_BR/
2023-10-06 11:01:47 +02:00
alison2033
12e2a31f99 chore(translate): (Portuguese)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pt/
2023-09-28 01:01:42 +02:00
alison2033
1ee28852f2 chore(translate): (Bulgarian)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/bg/
2023-09-28 01:01:42 +02:00
lzyhenniu
e9f2527a45 chore(translate): (Chinese (Traditional))
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/zh_Hant/
2023-09-24 06:01:42 +02:00
MrDog210
a45b00ecdb chore(translate): (Slovenian)
Currently translated at 81.2% (13 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/sl/
2023-09-18 13:01:42 +02:00
Pysta
54b56d4e24 chore(translate): (Slovak)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/sk/
2023-09-18 13:01:42 +02:00
Zan
5b464d32dc chore(translate): (Hungarian)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/hu/
2023-09-18 13:01:42 +02:00
Miraficus
fd6102964c chore(translate): (Czech)
Currently translated at 93.7% (15 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/cs/
2023-09-18 13:01:42 +02:00
Ido
b5f0858aca chore(translate): (Hebrew)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/he/
2023-09-08 02:01:46 +02:00
TnZzZHlp
8a89697da5 chore(translate): (Chinese (Simplified))
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/zh_Hans/
2023-09-08 02:01:46 +02:00
jarnedemeulemeester
43d6d5ce1f
refactor: migrate from kapt to ksp 2023-09-01 14:39:00 +02:00
cd16b
e714840432 chore(translate): (Italian)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/it/
2023-08-19 14:27:54 +02:00
NeroPcStation
cef6bf3c0a chore(translate): (Polish)
Currently translated at 100.0% (16 of 16 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pl/
2023-08-16 06:27:54 +02:00
Cd16d
d28e80d68e
feat: picture-in-picture (#277)
* add pip

* fixed OnResume() OnStop()
add picture in picture button
add pip settings

* fixed sourceRectHint
add aspectRatio

* fix import

* improve hide playerControls

* add onNewIntent()

* Home button/gesture settings

* add summary

* add GESTURE_EXCLUSION_AREA_SIDE

* remove if else in sourceRectHint
fix onStop() behavior

* fix behavior when using pip button, now go home

* test

* fix onStop()

* fix: mpv aspect ratio

* fix when in PiP mode and starting new playback

* refactor: pip implementation

Remove option to disable pip button, always show the button when pip is supported
Remove the option to completely disable pip
Format using ktlint

* fix when in pip mode and play a new video

* fix recent app behavior

* lint

* Some adjustments

* fix: Aspect ratio is too extreme

* fix: Activity recreation

* fix merge issues

* fix merge issues

* ktlintFormat

* Add Picture in Picture

* fix

* fix sourceRectHint, updateZoomMode before entering pip

* lint

* fix: disable pip when player is locked

* lint

* lint

* fix: sourceRectHint

* fix: replace media items in mpv

* fix: don't show skip intro button in pip

* chore: remove `android:resizeableActivity` from manifest since the default is already `true`

* refactor: remove option to force 16:9 aspect ratio

* refactor: update strings

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-08-14 22:47:42 +02:00
Alehaaaa
1911e524a9 chore(translate): (Spanish)
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/es/
2023-08-14 11:27:54 +02:00
Alehaaaa
89ce8e4591 chore(translate): (Spanish (Mexico))
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/es_MX/
2023-08-14 11:27:54 +02:00
Alehaaaa
10660e6172 chore(translate): (Spanish (Latin America))
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/es_419/
2023-08-14 11:27:54 +02:00
NickSkier
6b81f1fb1c chore(translate): (Russian)
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/ru/
2023-08-13 02:27:54 +02:00
lzyhenniu
b81025b847 chore(translate): (Chinese (Simplified))
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/zh_Hans/
2023-08-01 07:27:53 +02:00
Jarne Demeulemeester
270f7decaa
refactor(PlayerActivity): replace livedata with UiState StateFlow 2023-07-31 23:21:41 +02:00
Jarne Demeulemeester
0717103895
build: up min sdk to 28 (#456)
* build: bump min sdk to 28

* refactor: remove unnecessary checks

* refactor: remove unused import
2023-07-30 16:08:36 +02:00
Jarne Demeulemeester
75ea33fd33
feat: target sdk 34 (#405) 2023-07-30 14:50:58 +02:00
kimpig
0902172965 chore(translate): (Korean)
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/ko/
2023-07-29 18:27:53 +02:00
teddy74eva
a5db588c17 chore(translate): (Polish)
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pl/
2023-07-25 00:27:53 +02:00
teddy74eva
9c6da73e51 chore(translate): (Polish)
Currently translated at 93.3% (14 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pl/
2023-07-12 01:27:52 +02:00
Jarne Demeulemeester
7a3b67f64b
fix(player): playback position reset on process death and playback continues playing when the device is locked
Closes #389 #390
2023-07-09 15:15:15 +02:00
renovate[bot]
58cbd9cf9d
fix(deps): update androidx.media3 to v1.1.0 (#427)
* fix(deps): update androidx.media3 to v1.1.0

* fix: implement missing members in `MPVPlayer`

* lint: run ktlintFormat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-07-09 11:44:46 +02:00
renovate[bot]
80a86e2dfc
chore(deps): update dependency org.jlleitschuh.gradle.ktlint to v11.5.0 (#426)
* chore(deps): update dependency org.jlleitschuh.gradle.ktlint to v11.5.0

* feat: bump to ktlint 0.50.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-07-08 00:36:23 +02:00
Natanel Shitrit
8ccda933cc chore(translate): (Hebrew)
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/he/
2023-07-07 23:27:52 +02:00
Ido
43bd2621d1 chore(translate): (Hebrew)
Currently translated at 93.3% (14 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/he/
2023-07-06 21:00:40 +02:00
Pysta
05feb1d67b chore(translate): (Slovak)
Currently translated at 100.0% (15 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/sk/
2023-07-06 21:00:40 +02:00
Simon Scholz
3e07951f01 chore(translate): (Chinese (Simplified))
Currently translated at 86.6% (13 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/zh_Hans/
2023-07-04 14:27:52 +02:00
Adorján
a24bfedb55 chore(translate): (Hungarian)
Currently translated at 93.3% (14 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/hu/
2023-06-29 23:27:52 +02:00
Cristian
a6905de635 chore(translate): (Spanish)
Currently translated at 93.3% (14 of 15 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/es/
2023-06-29 23:27:52 +02:00
Jarne Demeulemeester
0b4e771e01
chore: clean up strings 2023-06-24 12:29:05 +02:00
cd16b
6db1706f66 chore(translate): (Italian)
Currently translated at 100.0% (14 of 14 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/it/
2023-06-24 00:28:30 +02:00
jarnedemeulemeester
43b3ceafba
chore: remove unused resources 2023-06-24 00:28:14 +02:00
Cd16d
ce1fe7edfc
fix: missing/hardcoded strings (#415)
* fix: add missing/hardcoded strings

* Update strings.xml
2023-06-23 16:11:22 +02:00
CakesTwix
c43e7cb6a4 chore(translate): (Ukrainian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/uk/
2023-06-20 16:27:52 +02:00
jarnedemeulemeester
b9253badf8
chore: remove some unused files and dependencies 2023-06-20 13:02:48 +02:00
Jarne Demeulemeester
b426a920c3
lint: run ktlintFormat 2023-06-19 23:44:42 +02:00
renovate[bot]
07efae6f4c
chore(deps): update dependency org.jlleitschuh.gradle.ktlint to v11.4.0 (#293)
* chore(deps): update dependency org.jlleitschuh.gradle.ktlint to v11.4.0

* fix: use .editorconfig

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>
2023-06-19 23:16:02 +02:00
CakesTwix
4cc753bf07 chore(translate): add (Ukrainian) 2023-06-19 16:25:39 +02:00
Nicolas Boyer
1c75f233e0 chore(translate): (French)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/fr/
2023-06-05 20:27:51 +02:00
Jarne Demeulemeester
3f8f657573
feat: always show extended episode title
Remove the option to display extended title
2023-05-22 00:14:33 +02:00
Jarne Demeulemeester
7e4ac39e83
perf: remove duplicate getMediaSources call when preparing player items 2023-05-20 15:25:57 +02:00
lzyhenniu
43bb735610 chore(translate): (Chinese (Simplified))
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/zh_Hans/
2023-05-19 08:27:51 +02:00
Jarne Demeulemeester
fd33d52bba
feat: add product flavors libre and huawei
Huawei requires a different app icon. They don't like the Android Robot :(
2023-05-14 18:32:46 +02:00
NeroPcStation
5c843adcd0 chore(translate): (Polish)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pl/
2023-05-14 11:19:34 +02:00
Jarne Demeulemeester
b816a2d460
perf: only request stream url when preparing player items 2023-05-13 21:34:05 +02:00
NickSkier
9bbf73d59c chore(translate): (Russian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/ru/
2023-05-12 02:27:51 +02:00
newton181
e2be590f0f chore(translate): (Spanish)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/es/
2023-05-12 02:27:51 +02:00
Weblate
2c32d318d8 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/
2023-05-11 00:27:51 +02:00
Mario
7a9796428b chore(translate): (Spanish)
Currently translated at 80.0% (4 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/es/
2023-05-11 00:27:50 +02:00
jarnedemeulemeester
8a96588a88
fix: show indexNumberEnd 2023-05-08 23:51:31 +02:00
Jarne Demeulemeester
00c84fa9d5
Items and downloads rework (#329)
* refactor WIP: stop using `BaseItemDto` but use custom items specific to Findroid

This will make it easier to support downloaded items

* refactor: split `MediaInfoFragment` into `MovieFragment` and `ShowFragment`

* feat: add download icons to items

* feat WIP: download movies

* feat: download movie and play local file

* fix: remove `VideoVersionDialogFragment` from `ShowFragment`

* feat: select which version you want to download

* feat: delete downloaded movie

* feat: download progress indicator

* refactor: rename JellyfinItems to FindroidItems

* feat: offline mode (movies only)

* feat: offline mode card

* feat: download external files

* feat: toggle played on downloads

* feat: convert intros to `FindroidIntro`

* refactor: add itemId and sourceId to external downloaded subtitle filenames

* refactor: simplify `onMediaItemTransition`

* refactor: clean up some player item logic

* feat: download trickPlay data

* refactor: downloading of item to only require the item and a source id

* fix: external subtitle title

* feat: add `DownloadsFragment`

* feat: download episodes

* fix: cascade deletion if last item

* feat: download intro timestamps

* feat WIP: add storage activity

* feat: user data in separate table

* feat: add buttons to season fragment

* fix: improve responsiveness of the watched and favorite buttons

* fix: move `ic_database.xml` to main

* perf: optimize home fragment by limiting the number of items

* fix: database improvements

- use compound primary key for FindroidUserDataDto instead of id
- set played to false when playback percentage is below 90%
- capitalize SQL keywords
- update favorite in userdata
- set primary key of TrickPlayManifestDto to itemId
- prepare to sync data back to server

* feat: sync playback progress

This includes playback position, played and favorite

* fix: use non-transitive r classes

* lint: ktlint fix

* refactor: centralize item buttons in `item_actions.xml`

* feat: show intermediate progress when progress is less than 5

Also remove delete button from item_actions.xml

* feat: remove intros

* feat: check available storage space before downloading

* fix: trailer button

* refactor: make indexNumberEnd nullable

* feat: add offline mode toggle in settings

* fix: download over mobile data and roaming

* feat: immediately show spinner when tapping download

* revert: season fragment buttons

* feat: snackbar in downloads fragment

This snackbar is displayed when there is no connection to the server but the app is not in Offline Mode (Offline Mode is required to play content when the server is unavailable)

* refactor: make onReceive arguments non nullable

* fix: handle download finished / failed when BroadcastReceiver does not work

* fix: download multiple episodes

* feat: download to external storage (SD card)

* fix: reset download button when dialog is dismissed

* feat(offline): show "continue watching" episodes on home

* fix: watch progress bar on episode item in season

* feat(offline): next up items

* lint: fix some linting issues

* lint: fix some linting issues

* lint: fix some linting issues

* feat: remove StorageActivity

StorageActivity is not ready yet and out of scope for this PR

* fix: collection types that are not known crash the media fragment

* fix: downloading trick play data

* fix: sort downloaded items

* fix: navigate back if item is deleted instead of showing error

Navigate back based on NullPointerException in loadData method of viewmodels. This may not be the best approach but it works well enough.

Navigating back from BottomSheetFragment does not trigger onResume of previous fragment which in turn does not refresh its contents.

* fix: play from local storage instead of server when downloaded

* fix: missing items

* fix: `SyncWorker` using the app JellyfinApi instance instead of it's own

* fix: only show downloaded items when navigating from `DownloadsFragment`

* fix: make chips horizontal scrollable

* feat: migrate database (retain) and downloads (wipe)

Also add indexes on seriesId and seasonId

* fix: remove temp testing in downloadsMigrated

* lint: fix some linting issues

* fix: add error handling to downloading item

* feat: add "Preparing download" dialog to make sure the user waits for the download to start

* refactor: first show dialog then start downloading

* fix: add error handling to user configuration in `PlayerViewModel`

* feat: allow downloads to be cancelled

* fix: "View details" is cut off when text is too long

* lint: fix indent
2023-05-07 16:05:40 +02:00
renovate[bot]
2e6d069136
chore(deps): update dependency gradle to v8.1 (#332)
* Update dependency gradle to v8.1

* fix: remove @Suppress("DSL_SCOPE_VIOLATION") from build.gradle files

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-04-15 01:01:41 +02:00
renovate[bot]
22542614cd
chore(deps): update android-plugin to v8 (major) (#333)
* Update android-plugin to v8

* ci: upgrade to java 17

* fix: transitive R classes and buildconfig

* lint: fix ktlint issues

* lint: fix ktlint issues

* lint: fix ktlint issues

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>
2023-04-15 00:43:42 +02:00
Ido
615ddcde57 chore(translate): (Hebrew)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/he/
2023-03-29 18:27:49 +02:00
Ido
996262b4e0 chore(translate): add (Hebrew) 2023-03-28 16:02:20 +02:00
DualScorch
19741f2c35 chore(translate): (Swedish)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/sv/
2023-03-12 15:27:49 +01:00
DualScorch
017b224fb9 chore(translate): add (Swedish) 2023-03-11 14:41:27 +01:00
Faywyrr
01d8c11a2c
feat: scrubbing preview (#295)
* 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>
2023-02-21 19:46:00 +01:00
renovate[bot]
1a8e71a8a9
Update androidx-media3 to v1.0.0-rc01 (#296)
* Update androidx-media3 to v1.0.0-rc01

* fix: add new arguments to `seekTo` method

* lint: run ktlintFormat

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-02-18 12:22:13 +01:00
renovate[bot]
86abe204f9
Update dependency gradle to v8 (#289)
* Update dependency gradle to v8

* fix: add compatibility with AGP 7.4 and remove some kotlin jvmTarget

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-02-13 21:58:05 +01:00
Jarne Demeulemeester
3c2b751df2
lint: fix errors 2023-02-11 12:09:51 +01:00
js6pak
5f7b7eaf63
Add CI (#236)
* Create main.yml

* Run ktlintFormat

* Don't error on translation lint issues

* Fix lint error about POST_NOTIFICATIONS permission

* Increase memory limit to speedup the build

* Only build debug

* refactor: rename `main.yml` to `build.yaml`

* lint: error on `ExtraTranslation`

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-02-11 12:01:02 +01:00
Jarne Demeulemeester
9133b2a273
fix: playback progress is not saved when leaving player 2023-02-08 01:05:21 +01:00
Pysta
8500ef1fae Translated using Weblate (Slovak)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/sk/
2023-02-06 13:01:09 +01:00
MrDog210
1a746af4a7 Translated using Weblate (Slovenian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/sl/
2023-02-06 13:01:09 +01:00
MrDog210
e3436230c5 Added translation using Weblate (Slovenian) 2023-02-05 12:49:38 +01:00
Jarne Demeulemeester
7b5745acf1
fix(mpv): memory leak, stuck loading icon, anr, deprecated methods (#273)
* fix: memory leak and stuck loading icon

Also replace deprecated audio focus methods

* fix: use global scope for posting playback stopped

This fixes ANRs that people are having when leaving the player
2023-02-05 01:15:43 +01:00
Pysta
dff297513a Added translation using Weblate (Slovak) 2023-02-04 13:16:56 +01:00
cd16b
7b6c3f8dce Translated using Weblate (Italian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/it/
2023-02-03 15:01:09 +01:00
NickSkier
8d32260d61 Translated using Weblate (Russian)
Currently translated at 100.0% (5 of 5 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/ru/
2023-02-01 04:01:13 +01:00