Commit graph

701 commits

Author SHA1 Message Date
Freya
e74a86da24
Merge branch 'jarnedemeulemeester:main' into auto-offline-mode 2024-06-24 13:32:53 +00: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
cd16b
6095c97704 Materia3 buttons and WatchCredits button 2024-06-24 12:01:50 +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
91cccc55a7 Improve skipButton visibility/usability 2024-06-21 14:36:11 +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
038eb45077
chore(deps): upgrade to kotlin 2.0 2024-05-24 00:10:01 +02:00
Jarne Demeulemeester
0ed42e1223
fix: keep all classes in tv release build
This fixes runtime errors
2024-05-19 18:27:54 +02:00
Jarne Demeulemeester
45b5cb6bf3
refactor: remove unused code 2024-05-10 11:34:40 +02:00
Jarne Demeulemeester
0fa3093d0c
fix: enable core library desugaring 2024-05-09 22:05:52 +02:00
Jarne Demeulemeester
ef5685ce63
chore: clean up dependencies 2024-05-09 12:30:23 +02:00
Jarne Demeulemeester
f10185111e
lint: fix issues 2024-05-04 11:03:11 +02:00
Jarne Demeulemeester
6441e5437a
chore: upgrade androidx tv material3 to 1.0.0-beta01 2024-05-02 20:13:10 +02:00
leekleak
a78dafe387
feat: add login disclaimer support (#721)
* add login disclaimer support

* refactor: move disclaimer to `UiState.Normal`

This makes more sense in the current architecture

* feat: add login disclaimer to tv version

* refactor: add margin to bottom of disclaimer

* lint: add missing trailing comma

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2024-04-27 18:39:45 +02:00
Jarne Demeulemeester
7b3523e605
chore(deps): update dependencies
androidx-activity 1.8.2 -> 1.9.0
androidx-compose-bom 2024.04.00 -> 2024.04.01
androidx-compose-compiler 1.5.11 -> 1.5.12
androidx-core 1.12.0 -< 1.13.0
jellyfin-media3-ffmpeg-decoder 1.2.1+1 -> 1.3.1+1
2024-04-20 11:06:52 +02:00
Cd16d
e10ae9c487
Merge branch 'main' into Skip-credit 2024-04-15 20:07:07 +02:00
Jarne Demeulemeester
400335325a
chore: change apks output name for release builds 2024-04-14 22:00:22 +02:00
Jarne Demeulemeester
2d83b38387
test: main flow
Closes #727
2024-04-13 16:01:18 +02:00
Jarne Demeulemeester
bd98967b78
refactor: remove huawei flavor 2024-04-12 23:22:54 +02:00
jarnedemeulemeester
7aa3bf39b1
refactor: migrate to org.jellyfin.media3:media3-ffmpeg-decoder
Close #725
2024-04-12 23:13:44 +02:00
leekleak
a743363a87
feat: support html in media description (#713)
* support HTML in media description

* parse html in episode overview

* do the same in season view
2024-04-10 11:25:22 +02:00
Jarne Demeulemeester
a0297357d5
fix: reduce community rating to one decimal place
Closes #370
2024-03-05 21:38:38 +01:00
cd16b
ce9eed6344 fix skipButton hide on click 2024-03-05 16:27:21 +01:00
Jarne Demeulemeester
04c6573dfb
fix: empty collection string
Closes #585
2024-03-04 20:59:35 +01:00
Jarne Demeulemeester
f61f65828f
fix: handle IllegalArgumentException from setPictureInPictureParams 2024-03-04 19:37:13 +01:00
Cd16d
d4e6351a2d
Merge branch 'main' into Skip-credit 2024-03-04 00:29:24 +01:00
Jarne Demeulemeester
0a1582f47b
fix(theme): set correct surface color when using dynamic colors or amoled theme
Surface colors have changed in material components 1.11.0

Closes #673
2024-03-02 23:52:07 +01:00
Cd16d
3c6e03db89
Merge branch 'main' into Skip-credit 2024-02-25 16:32:47 +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
jarnedemeulemeester
88f648a25e
chore: use compose bom and upgrade compose compiler to 1.5.10 2024-02-22 18:03:58 +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
Jarne Demeulemeester
3e3d749f62
refactor: remove back button in locked controls 2024-02-03 22:29:32 +01:00
Jarne Demeulemeester
782f736a8a
fix: long press fixes
Disable when controls are locked
Disable when more than 1 pointer
2024-02-03 22:21:10 +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
Cd16d
3ba5a73c74
fix: pip zoom start player maximized (#640)
* fix zoom

* update isZoomEnabled inside updateZoomMode

To avoid future issues, I will update `isZoomEnabled` inside `updateZoomMode`.

* Revert " update isZoomEnabled inside updateZoomMode"

This reverts commit 9b539e1830bc76db0c540a51299f05a09c553d00.

* fix: isZoomEnable

* val enableZoom for readability

* lint
2024-02-03 18:22:01 +01:00
Cd16d
c67f6c265b
fix: pip remember zoom and auto-brightness (#638) 2024-01-28 14:11:34 +01:00
Natanel Shitrit
61ec1edb35
feat: start player maximized pref (#637) 2024-01-28 14:01:29 +01:00
cd16b
05730a513c change text hasNextMediaItem() false 2024-01-23 11:51:45 +01:00
cd16b
a740d3fc71 fix lint 2024-01-22 17:29:44 +01:00
cd16b
9711f4c4fb Close player on the last episode of a series 2024-01-22 17:25:12 +01:00
peerless2012
0ecf6d4c0e
feat: add long press for 2x speed (#596)
* Add long press for 2x speed.

* Fix resource hard code warn.

* Fix lint warn.

* refactor: use `player.setPlaybackSpeed`

* refactor: make playback speed increase easily adjustable later

---------

Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>
2024-01-22 15:31:50 +01:00
cd16b
7f02f3de0a fix lint 2024-01-22 14:14:28 +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
Freya Winters
216092888a Fix linting issue 2024-01-15 09:02:01 +01:00
Freya
a972832aae
Merge branch 'main' into main 2024-01-11 20:03:49 +00: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
db5eab1ab2
refactor(tv): use media3 track type instead of mpv track type for track selection dialog 2024-01-01 11:28:42 +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
85f48b9abc
refactor(tv): remove temp start route override 2023-12-31 21:29:15 +01:00
Jarne Demeulemeester
1c893d0059
refactor(tv): remove unused composables 2023-12-31 20:59:31 +01:00
Jarne Demeulemeester
2b6649e0ce
refactor(tv): move background gradient to theme 2023-12-31 20:54:13 +01:00
Jarne Demeulemeester
db9a6d6877
feat(phone,exoplayer): allow audio track to be disabled 2023-12-31 11:19:28 +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
Freya Winters
722267ced2 Merge remote-tracking branch 'upstream/main' 2023-12-28 15:48:58 +01:00
Jarne Demeulemeester
218b4f1af4
refactor: replace SharedFlows with Channels for sending events 2023-11-06 23:42:00 +01:00
Freya Winters
da64c968bc Fix manual offline mode 2023-10-28 13:38:09 +02:00
Natanel Shitrit
8b747bf037
refactor: remove cleanUpOldDownloads (#529)
* Remove `cleanUpOldDownloads`

* refactor: remove `downloadsMigrated` preference

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-10-28 12:38:35 +02:00
Jesper Winters
b5f5a6eaed Fix linting issue 2023-10-27 15:49:20 +02:00
Jesper Winters
49d52f9713 Fix linting issues 2023-10-27 15:37:37 +02:00
Jesper Winters
689c5cff3f Clean up 2023-10-27 15:37:07 +02:00
Jesper Winters
3db0f57437 Add option to turn on offline mode automatically 2023-10-27 15:35:07 +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
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
dd826fc38d
fix: crash when aspect ratio is 0 2023-09-25 22:35:33 +02:00
Jarne Demeulemeester
0512d89bee
refactor: clean up adapter callbacks 2023-09-25 22:05:49 +02:00
Jarne Demeulemeester
3d92c3c909
refactor: remove some unused code 2023-09-09 22:09:48 +02:00
jarnedemeulemeester
f5dcd7af28
fix: do not recreate player activity on uiMode configuration change
Fix #505
Fix #510
2023-09-08 17:33:01 +02:00
Natanel Shitrit
58be66f541
fix: snackbar not showing in landscape mode (#476)
* Fix snackbar not showing in landscape

This affected also all tablets since they use the landscape view!

Added `setTextMaxLines` because for some reason the text is truncated on tablets.

Fixes #473.

Co-Authored-By: Jcuhfehl <91626737+Jcuhfehl@users.noreply.github.com>

* Remove unused import

---------

Co-authored-by: Jcuhfehl <91626737+Jcuhfehl@users.noreply.github.com>
2023-09-02 11:53:56 +02:00
Jarne Demeulemeester
04258f05ff
fix: do not show next_up_layout while loading
Fix #500
2023-09-02 11:37:02 +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
Cd16d
a36c4f0dca
fix: pip (#481)
* fix pip

* refactor: make isPipSupported more readable

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-08-24 21:29:10 +02:00
Natanel Shitrit
777445d352
feat: show episode size in extra info (#477)
* Show episode size if extra info is enabled

* Remove unnecessary stuff
2023-08-21 21:41:51 +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
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
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
jarnedemeulemeester
1183ae796c
refactor: remove databinding from base_item, collection_item, episode_item, home_episode_item, person_item, season_header, user_item and user_list_item
Also completely disable databinding in app:phone
2023-08-01 09:16:04 +02:00
Jarne Demeulemeester
f8e6453ec3
refactor: remove databinding from favorite_section, next_up_section and view_item 2023-07-31 23:58:01 +02:00
Jarne Demeulemeester
6ffc761972
refactor(server_item): remove databinding 2023-07-31 23:46:44 +02:00
Jarne Demeulemeester
012a597157
refactor(server_address_list_item): remove databinding 2023-07-31 23:44:21 +02:00
Jarne Demeulemeester
5a8b75194d
refactor(discovered_server_item): remove databinding 2023-07-31 23:37:38 +02:00
Jarne Demeulemeester
270f7decaa
refactor(PlayerActivity): replace livedata with UiState StateFlow 2023-07-31 23:21:41 +02:00
jarnedemeulemeester
a4dc94b310
refactor: get rid of databinding in ServerSelectFragment 2023-07-31 17:34:01 +02:00
jarnedemeulemeester
16d54781b1
chore: remove androidx-recyclerview-selection as it is unused 2023-07-31 17:31:04 +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
mustafadakhel
d86b162d4b
feat: add double tap ripple animation (#401)
* Add double tap seeking animation

* Remove unnecessary formatting changes

* Order imports correctly

* Remove needless blank line

* feat: add ripple for playback (play / pause)

* refactor: clean up

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-07-29 15:47:36 +02:00
Daniel Jacob Chittoor
57c1e85b11
feat: add play/pause functionality to onDoubleTap (#450)
* feat: Add seek and play/pause functionality to onDoubleTap

This patch enhances the `onDoubleTap` method within the media player
component. It introduces a split-screen layout where the player view is
divided into three equal areas (in the ratio of 2:1:2).

1. Leftmost Area: When double-tapped, it seeks the media playback
backward by the defined seek increment
(`appPreferences.playerSeekBackIncrement`).

2. Middle Area: A double-tap in this area toggles the play/pause state
of the player. If the player is currently playing, it will be paused,
and if it's paused, it will be resumed.

3. Rightmost Area: When double-tapped, it seeks the media playback
forward by the specified seek increment
(`appPreferences.playerSeekForwardIncrement`).

* refactor: inline some variables and put x position inside when statement

---------

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2023-07-29 13:29:05 +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]
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
Cd16d
7932216105
fix: configureInsets() for lockedControls, volume progress bar smoothness, gesture not working if the player was locked (#408)
* fix: volume progress bar smoothness

* fix: configureInsets() for lockedControls

* fix: gesture not working if the player was locked and used back gesture
2023-06-24 16:34:33 +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