Commit graph

232 commits

Author SHA1 Message Date
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
e3df6e8d7e chore(translate): (Vietnamese)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/vi/
2023-12-11 05:33:05 +01:00
Zan
157b0e012a chore(translate): (Hungarian)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/hu/
2023-12-08 18:30:00 +01:00
lzyhenniu
bc82b78256 chore(translate): (Chinese (Traditional))
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/zh_Hant/
2023-11-18 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
38ed84c408 chore(translate): (Korean)
Currently translated at 99.4% (177 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/ko/
2023-10-29 09:06:00 +01:00
Jarne Demeulemeester
b18b09eac1
fix: delete userdata when deleting season or show 2023-10-28 15:20:46 +02:00
Jarne Demeulemeester
75d2b835db
refactor: generate kotlin code for dao 2023-10-28 15:15:51 +02:00
Téo Haÿs
7357783fa5 chore(translate): (French)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/fr/
2023-10-24 20:03:31 +02:00
Pierre K
19f1c94db1 chore(translate): (French)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/fr/
2023-10-23 19:54:31 +02:00
Téo Haÿs
61e02df8dc chore(translate): (French)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/fr/
2023-10-23 19:54:17 +02:00
jarnedemeulemeester
adbbab46f1
feat: add Romanian and Ukrainian to locales_config.xml 2023-10-23 13:27:49 +02:00
Pierre K
cd27b95792 chore(translate): (French)
Currently translated at 98.3% (175 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/fr/
2023-10-23 13:25:20 +02:00
jarnedemeulemeester
b96b3f301c
refactor: remove app_name translation from translations 2023-10-23 13:25:14 +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
alison2033
1eda1cc0e5 chore(translate): (Portuguese)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/pt/
2023-10-13 22:03:31 +02:00
alison2033
40ca369b7f chore(translate): (Portuguese)
Currently translated at 84.8% (151 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/pt/
2023-10-08 02:03:30 +02:00
alison2033
131488325d chore(translate): (Portuguese)
Currently translated at 69.6% (124 of 178 strings)

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

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/bg/
2023-09-28 01:01:42 +02:00
Natanel Shitrit
28231affc8
fix: show server select fragment when server has no current user (#235) (#439)
* Organize code, fix "locking" problem

Organize `MainActivity.kt`.

Open `serverSelectFragment` instead of `loginFragment` which could've lead to app locking if no user has logged in after adding the server.

* Fix linting

* Optimize imports

* fix: update jellyfinApi before navigating to login fragment

Also move logic to viewmodel

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-09-25 23:34:06 +02:00
Jarne Demeulemeester
c43087b1a8
fix: server visually stays when deleted + crash 2023-09-25 22:22:34 +02:00
lzyhenniu
c53bbde44b chore(translate): (Chinese (Traditional))
Currently translated at 98.8% (176 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/zh_Hant/
2023-09-24 06:01:42 +02:00
CodeName393
bb5957795b chore(translate): (Korean)
Currently translated at 97.7% (174 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/ko/
2023-09-24 06:01:42 +02:00
Miraficus
7adef65b47 chore(translate): (Czech)
Currently translated at 88.7% (158 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/cs/
2023-09-24 06:01:42 +02:00
Miraficus
ccf6be7c25 chore(translate): (Czech)
Currently translated at 85.3% (152 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/cs/
2023-09-19 20:01:42 +02:00
MrDog210
a03a39a6a7 chore(translate): (Slovenian)
Currently translated at 84.2% (150 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/sl/
2023-09-18 13:01:42 +02:00
Pysta
5079abf3ef chore(translate): (Slovak)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/sk/
2023-09-18 13:01:42 +02:00
Adorján
f4d80424c0 chore(translate): (Hungarian)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/hu/
2023-09-18 13:01:42 +02:00
Zan
052417db76 chore(translate): (Hungarian)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/hu/
2023-09-18 13:01:42 +02:00
Miraficus
7c1c78b1c4 chore(translate): (Czech)
Currently translated at 85.3% (152 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/cs/
2023-09-18 13:01:42 +02:00
Jarne Demeulemeester
3d92c3c909
refactor: remove some unused code 2023-09-09 22:09:48 +02:00
Jarne Demeulemeester
81aba42489
fix: use Theme.Findroid as parent for Player theme
Fixes incorrect background color in player popups when using night mode

Fix #503
2023-09-09 22:04:55 +02:00
Ido
33d39d5516 chore(translate): (Hebrew)
Currently translated at 99.4% (177 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/he/
2023-09-08 02:01:46 +02:00
Daivy
91bc96a5ed chore(translate): (Italian)
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/it/
2023-09-08 02:01:46 +02:00
TnZzZHlp
5219d44cb7 chore(translate): (Chinese (Simplified))
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/zh_Hans/
2023-09-08 02:01:46 +02:00
Rogério Mendes
4727f8d15f chore(translate): (Portuguese (Brazil))
Currently translated at 100.0% (178 of 178 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/pt_BR/
2023-09-08 02:01:46 +02:00
jarnedemeulemeester
43d6d5ce1f
refactor: migrate from kapt to ksp 2023-09-01 14:39:00 +02:00
004matteos
001ef4a2cc
feat: enhance person detail fragment layout on mobile (#400)
* improvement: changed Person Detail Fragment

Changed the Person Detail Fragment to better use the available space.
Separate layout for larger screens/landscape orientation

* added values for different screen sizes

* fixed spacing

* refactor: rename `layout_height_def` to `person_detail_overview_height`

* refactor: remove `+` from some ids

I know that xml files are parsed top to bottom and the plus sign create a new id. But it seems to work even if the id is created after it is referenced.
I think this is cleaner

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-08-27 17:12:38 +02:00
cd16b
6f4c3eb3e9 chore(translate): (Italian)
Currently translated at 100.0% (178 of 178 strings)

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

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/pl/
2023-08-16 06:27:54 +02:00
Teo Baranga
373864ba46
fix: episode indicator wrapping on second line (#468)
Fixes #445

The episode indicator background was constrained to a 24dp box. If this box could not contain the count, then the count would wrap onto a new line.

The proposed solution is to use a rounded rectangle as the background instead. This can then expand into a chip as needed to accommodate larger numbers without wrapping.
2023-08-15 11:57:09 +02:00
Jcuhfehl
c2d499821f
fix: playback sync issue (#465) 2023-08-15 11:41:37 +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
3bdfd239fd chore(translate): (Spanish)
Currently translated at 100.0% (175 of 175 strings)

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

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

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/es_419/
2023-08-14 11:27:53 +02:00
Anil Kumar Beesetti
8992646090
refactor: use WindowInsetsControllerCompat instead of deprecated methods (#302)
* refactor: remove deprecated methods to hide system ui

* fix: action bar reappear after changing the brightness

* lint: run ktlintFormat

* refactor: remove sdk check

* fix: system bars stay visible after closing dialog

* fix: add player theme to set navigationbar and statusbar colors to transparent

* fix: draw behind navigationbar and statusbar

* refactor: remove swipeToShowStatusBars extensions

Remove fix for status bar reappearing on LineageOS after changing brightness with gesture.
This can always be added back when official Android version from manufacturers also need this fix.

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-08-13 22:44:34 +02:00
NickSkier
f79f4495a4 chore(translate): (Russian)
Currently translated at 100.0% (175 of 175 strings)

Translation: Findroid/core
Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/ru/
2023-08-13 02:27:53 +02:00