Commit graph

114 commits

Author SHA1 Message Date
Euromancer
eca67acc15 chore(translate): (Danish)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/da/
2024-02-19 09:35:09 +01:00
Euromancer
58b6a63bb8 chore(translate): add (Danish) 2024-02-19 08:42:57 +01:00
Natanel Shitrit
c39bdce845
feat: chapters (#466)
* Add chapter markers and "skip chapter" on long press

* Fix linting problems

- Missing comma
- Unused import
- Comment block

* Add preferences options

* Drop chapter support for ExoPlayer

* Fix linting

* Remove Trailing spaces

* Remove TODO from marker color

* Move code to function

* Optimize imports

* Fix crash on episode skip

* Disable player control view animation

* Avoid crash when there are no chapters for media item

* Skip to next episode when skipping last chapter

* Load chapters from Jellyfin API instead of MPV Player

* Remove chapter gesture

* Fix build

* Fix linting

* Fix linting

* Support chapters with offline media

* Remove debug print

* Add chapter skipping

* Remove trailing spaces

* fix(chapters): display correct chapter while seeking

* refactor: faster and cleaner `getCurrentChapterIndex`

* refactor: seek to start of current chapter if player position is more than 5 seconds past start of chapter

* refactor: change "Matroska chapters" to just "Chapters"

The chapters feature also works for MP4 files so just make it generic

* Bump database version

* Add auto-migration for database version bump

* Save database schema

* chore: clean up

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2024-02-17 16:45:07 +01:00
Natanel Shitrit
42df641c03
feat: automatic PiP animation (#648)
* Add automatic PiP animation

* Fix linting

* Fix linting

* chore: fix merge conflict

* fix: disable pip gesture when media is paused

* fix: crash when gestures are disabled

* fix: keep auto enter enabled after using button

---------

Co-authored-by: Cd16d <98320806+cd16b@users.noreply.github.com>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2024-02-03 22:04:48 +01:00
Zan
6051fee681 chore(translate): (Hungarian)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/hu/
2024-02-03 02:22:18 +01:00
liwenliang926
17c6c8b0e5 chore(translate): (Chinese (Simplified))
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/zh_Hans/
2024-01-29 08:20:40 +01:00
Jarne Demeulemeester
07c58accf0
fix(mpv): loading item immediately restarts the playback causing duplicate external subtitle entries 2024-01-26 23:29:03 +01:00
jarnedemeulemeester
a16f910ee3
feat(mpv): default to gpu-next and mediacodec and use fast profile 2024-01-23 14:48:15 +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