Commit graph

68 commits

Author SHA1 Message Date
nomadics9
4e8ee15d0a bugfixes: getDeviceId() / code: New Enum VideoQuality 2024-07-20 06:31:53 +03:00
nomadics9
c84ec082be feat: Embedded subtitle in transcoding stream / bugfixes: Download quality dialog loop / code: clean up 2024-07-18 03:59:38 +03:00
nomadics9
362201eddf feat: Transcoding Download / code: Cleanup
Some checks failed
Build / Assemble (push) Has been cancelled
2024-07-17 05:58:26 +03:00
nomadics9
8139119c35 feat: Quality change in player (transcoded stream) 2024-07-14 21:54:21 +03:00
nomadics9
ab090a01d7 feat: Quality change in player 2024-07-14 01:38:34 +03:00
nomadics9
44b6e915ba feat: merged Skip Credits 2024-07-04 20:06:37 +03:00
nomadics9
a1cbea0b92 refactor:package name 2024-07-03 23:40:52 +03:00
nomadics9
288c96709e refactor package name 2024-06-29 15:44:54 +03:00
nomadics9
fcb58ef8ad personal personlization init 2024-06-29 03:07:12 +03:00
cd16b
09f3d218c1 Remove buttons colors and fix lint 2024-06-25 23:28:54 +02:00
cd16b
ba2f9d9708 Update Database 2024-06-24 18:54:10 +02:00
cd16b
5ab65062e6 Merge remote-tracking branch 'refs/remotes/origin/main' into Skip-credit
# Conflicts:
#	core/src/main/java/dev/jdtech/jellyfin/utils/DownloaderImpl.kt
#	core/src/main/res/values-it/strings.xml
#	core/src/main/res/values/strings.xml
#	data/schemas/dev.jdtech.jellyfin.database.ServerDatabase/5.json
#	data/src/main/java/dev/jdtech/jellyfin/database/ServerDatabase.kt
#	data/src/main/java/dev/jdtech/jellyfin/repository/JellyfinRepositoryImpl.kt
#	data/src/main/java/dev/jdtech/jellyfin/repository/JellyfinRepositoryOfflineImpl.kt
#	player/video/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt
2024-06-24 12:53:47 +02:00
Jarne Demeulemeester
c89dbcadf9
fix: mark as played and favorite
Fixes #781
2024-06-22 18:44:25 +02:00
Jarne Demeulemeester
c01ed644b2
feat: native 10.9 trickplay (#763)
* feat: native trickplay

TODO: update downloaded trickplay data

* chore: fix tv build

* fix: set dispatcher on image loading to remove flicker

* feat: download trickplay data

* refactor: simplify trickplay info by only loading a single resolution

* refactor: follow jellyfin naming of trickplay
2024-06-22 18:21:24 +02:00
cd16b
df984fb24b FindroidSegment 2024-06-20 23:59:24 +02:00
Cd16d
9f3be43eac
Merge branch 'main' into Skip-credit 2024-06-20 10:03:22 +02:00
Jarne Demeulemeester
ba20b2fd37
refactor: upgrade to jellyfin 10.9 (#757)
* refactor: upgrade to jellyfin 10.9

* chore: upgrade to jellyfin sdk 1.5.0-beta.2

* fix: don't show resumable items in next up

* chore: upgrade to jellyfin sdk 1.5.0-beta.3

* fix: sync offline playback progress

* refactor: initialize BrandingApi in JellyfinApi

* refactor: speed up quick connect auth

* perf: load home data on Default dispatcher
2024-06-16 12:29:26 +02:00
Cd16d
0999823d6d
Merge branch 'jarnedemeulemeester:main' into Skip-credit 2024-06-02 13:34:01 +02:00
Jarne Demeulemeester
76dcd97ad0
refactor: remove vtt fix 2024-05-12 18:33:01 +02:00
Yusuf
9379e60fc0
fix: sort tv shows by date played (#741)
* Fix wrong "Date Played" sort for TV shows

* fix: change sortby dateplayed to seriesdateplayed right before retrieving items

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2024-05-02 10:11:11 +02:00
Cd16d
e10ae9c487
Merge branch 'main' into Skip-credit 2024-04-15 20:07:07 +02:00
Jarne Demeulemeester
a0297357d5
fix: reduce community rating to one decimal place
Closes #370
2024-03-05 21:38:38 +01:00
Cd16d
3c6e03db89
Merge branch 'main' into Skip-credit 2024-02-25 16:32:47 +01:00
Jarne Demeulemeester
f49430d1f0
refactor: increase home screen item limits
Resume: 6 -> 12
NextUp: 9 -> 24
Latest: 12 -> 16
2024-02-24 22:56:54 +01:00
Nelson Wu
9cd3295d2d
feat: mixed libraries (#628)
* mixed collection

* Mixed libraries to show up in "Latest"

Co-authored-by: Freya Winters <freya@justgamingtld.nl>

* Do not recurse if folders are shown

* Added folder navigation for tv

* Removed assumption that folder == mixed

* refactor: add default values to `FindroidFolder`

* fix: add chapters to findroidfolder

---------

Co-authored-by: Freya Winters <freya@justgamingtld.nl>
Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2024-02-24 17:48:03 +01:00
Jarne Demeulemeester
4ec3b2e40c
fix: get chapters in episode resume items 2024-02-24 14:56:14 +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
cd16b
14eb313b1e fix lint 2024-01-22 13:45:41 +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
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
Jarne Demeulemeester
75d2b835db
refactor: generate kotlin code for dao 2023-10-28 15:15:51 +02:00
jarnedemeulemeester
e32b4eec7d
refactor: clean up 2023-10-23 13:24:26 +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
jarnedemeulemeester
a4dc94b310
refactor: get rid of databinding in ServerSelectFragment 2023-07-31 17:34:01 +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
Jarne Demeulemeester
763c11f590
refactor: clean up CollectionType 2023-07-11 15:03:40 +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
jarnedemeulemeester
9874f26ead
fix(room): use 1 instead of TRUE 2023-06-22 08:51:28 +02:00
jarnedemeulemeester
5b49abfbc8
fix: add CollectionType to proguard-rules.pro 2023-06-20 19:42:16 +02:00
Jarne Demeulemeester
c0d39ba7a1
refactor: migrate room to ksp (#253) 2023-06-20 19:37:43 +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
Jarne Demeulemeester
de34d6e6e5
fix: cannot play from specific downloaded episode 2023-05-21 23:45:45 +02:00
Jarne Demeulemeester
1c117d3c66
fix: catch NullPointerException in BaseItemDto to FindroidEpisode conversion
This error is caused by the seriesId or seasonId being null. Hide these episodes for now.

Closes #357
Closes #360
2023-05-14 18:39:35 +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
Jarne Demeulemeester
219d0c033a
refactor: remove unused StorageViewModel and StorageItem 2023-05-13 21:49:48 +02:00