Commit graph

128 commits

Author SHA1 Message Date
Jarne Demeulemeester
b48eb3af2f
lint: remove unused imports 2024-05-18 19:10:37 +02:00
Jarne Demeulemeester
76dcd97ad0
refactor: remove vtt fix 2024-05-12 18:33:01 +02:00
Jarne Demeulemeester
c6c5011964
refactor: remove delay when using mpv 2024-05-11 20:23:00 +02:00
Jarne Demeulemeester
ef5685ce63
chore: clean up dependencies 2024-05-09 12:30:23 +02:00
Jarne Demeulemeester
87da7a09e8
fix: some languages are displayed incorrectly in the track selector
See https://github.com/androidx/media/blob/release/libraries/common/src/main/java/androidx/media3/common/util/Util.java additionalIsoLanguageReplacements for the list of languages being mapped. Seems like always taking the last part and feeding that to Locale works.

Closes #737
2024-04-22 22:44:56 +02:00
Filip Bryłka
33a7dfedba chore(translate): (Polish)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pl/
2024-04-19 22:30:00 +02:00
chrisbehectik
86cc87cd43 chore(translate): (Portuguese)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/pt/
2024-04-09 17:51:46 +02:00
lzyhenniu
14c5e0e2c0 chore(translate): (Chinese (Traditional))
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/zh_Hant/
2024-04-04 16:30:00 +02:00
NukeSource
7f4dab41f5 chore(translate): (Turkish)
Currently translated at 29.4% (5 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/tr/
2024-03-15 07:30:02 +01:00
Panda260
4462d0ce83 chore(translate): (German)
Currently translated at 94.1% (16 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/de/
2024-03-11 06:02:25 +01:00
Pierre K
46a3442f50 chore(translate): (French)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/fr/
2024-03-06 17:35:13 +01:00
Jarne Demeulemeester
fcb13d3fc6
fix(mpv): request audio focus
Closes #536
2024-03-04 21:32:12 +01:00
Ilian
9506bdc0d2 chore(translate): (Dutch)
Currently translated at 100.0% (17 of 17 strings)

Translation: Findroid/player:video
Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/nl/
2024-03-01 00:39:12 +01:00
NukeSource
2c2b9cf519 chore(translate): add (Turkish) 2024-02-20 14:13:24 +01:00
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