Commit graph

353 commits

Author SHA1 Message Date
damontecres
efde6deb58
Adjust audio index when downloading subtitles (#129)
If the user has picked a specific audio track, then downloads a new
external subtitle, the audio track index must be adjusted (add 1) to
account for the shift in track indices.

This is because external subtitles are always indexed first.
2025-10-31 22:20:00 -04:00
damontecres
9f3691fd1b
Optional to automatically go to new page on focus instead of clicking (#127)
Closes #95 

Adds a setting (defaults to enabled) to automatically go to a page when
the navigation drawer item is focused after a brief delay.

Basically, if you open the left nav drawer, and scroll down to "Movies"
after a brief delay (600ms), the app will switch to the Movies page
without having to click.

It can be disabled in advanced settings.
2025-10-31 15:09:13 -04:00
Damontecres
26cc092402
Enable subtitles button when no subtitle tracks 2025-10-31 14:37:30 -04:00
damontecres
e9e5aee01c
Follow up to #122 for selecting subtitles tracks (#124)
Handles selecting subtitle tracks when transcoding now too

Also fixes the adjustment if there's many external subtitles
2025-10-31 13:56:42 -04:00
damontecres
1508fa1ea3
Show file details in overview dialog (#126)
When clicking the overview for an item, the dialog now shows details
about each file/media source including video, audio, & subtitle
information.

It only shows the full file path if the user is an administrator.
2025-10-31 12:27:30 -04:00
Damontecres
ba09ac09e4
Save build cache on main 2025-10-31 12:14:12 -04:00
damontecres
799255814f
Fix selecting subtitle tracks (#122)
Fixes subtitle track selection especially when there is a mix of
embedded & external subtitles

Fixes #116
2025-10-30 22:37:28 -04:00
damontecres
c65831cb05
Fix switching audio/subtitle tracks during playback (#121)
An error would occur when switching audio or subtitle tracks during
playback, but would be ignored. This meant the tracks can't be changed.

#111 was too aggressive on switching dispatchers. The player can only be
accessed on `Main`, so this PR fixes that.
2025-10-30 19:24:53 -04:00
damontecres
982506555f
Add page to details about people (#119)
Adds a page to show details about people (actors, directors, etc) when
clicking on the person card

<img width="1280" height="771" alt="wholphin_person"
src="https://github.com/user-attachments/assets/ceba6c77-2943-4faf-a2c2-81471fb3acff"
/>
2025-10-30 19:24:36 -04:00
Damontecres
90f4ca7306
Release v0.2.3 2025-10-30 14:52:09 -04:00
damontecres
4945bef008
Cache ffmpeg build (#115)
Speed up PR builds by caching the ffmpeg module build artifact
2025-10-30 14:32:07 -04:00
damontecres
3f7c2ac730
UI Updates & Fixes (#114)
Fixes #113 

- Ensures all audio and subtitle options are shown during playback
- Fix home rows not being at top when going back
- Show error message when background home page refresh fails

Also shows more details for login failures and adds a link to the debug
page (with log info) after multiple login failure attempts. Hopefully
this can help diagnose #112 and #18
2025-10-30 13:41:46 -04:00
damontecres
b1275ae210
Include ffmpeg extensions for some audio formats (#109)
Related to #103

Adds ffmpeg decoder module to support a few extra audio formats such as
AC3, EAC3, DTS, & TrueHD.

This increases the apk size by about 5.4mb (release 17.4mb->22.8mb), but
definitely worth it for the added support.
2025-10-29 20:34:41 -04:00
damontecres
f76556f90e
Fix network on main exception trying to play theme songs (#111)
Fetch the theme song info on the IO thread

This would throw an exception on some devices, but it would be caught
without affecting the app, other than just not playing theme music.
2025-10-29 20:07:00 -04:00
Damontecres
84ee57225b
Release v0.2.2 2025-10-29 13:59:03 -04:00
damontecres
cbcae526b4
Don't report playback started until it actually starts (#107)
Wait until playback actually beings before reporting status to the
server. And also ensure progress isn't reported until after reporting
start.
2025-10-29 13:15:17 -04:00
damontecres
576c20edff
Fixes & optimizations to series pages (#106)
Simplifies the process for finding the right season id & episode id
after clicking on an episode. This can also improve loading time for
seasons that have a large number of episodes (hundreds).

Also fixes handling for "unknown" seasons which don't have an
index/season number.
2025-10-29 11:02:21 -04:00
Damontecres
808e379e02
Use neutral color for buffered & remaining seek bar 2025-10-28 21:49:43 -04:00
Damontecres
5682f61b02
Always scroll rows w/ overview to top 2025-10-28 21:47:46 -04:00
damontecres
d578dca0cf
Make watched indicator more clear (#102)
Closes #89

Updates the watched indicator to be more clear. The checkmark is filled
in and there's a slight border to add contrast.

Also this PR makes the location of the watched indicator consistent
between card types and makes child counts always use a semi-transparent
black background.

## Before
<img width="451" height="260" alt="watched_before 2"
src="https://github.com/user-attachments/assets/734d1bb7-4604-4ef1-bb40-fc08403d58fe"
/>

## After
<img width="458" height="272" alt="watched_after 2"
src="https://github.com/user-attachments/assets/d39c4e8e-e483-4843-9083-33209302feb1"
/>
2025-10-28 20:47:17 -04:00
damontecres
06f2c1260d
Add slf4j-simple (#101)
Fixes #99 

While not an actual error, it does look like a transitive dependency of
the Jellyfin Kotlin SDK may log using slf4j, so it would be good to
include an slf4j implementation just in case.
2025-10-28 19:28:54 -04:00
damontecres
f291a0ec04
Move focus from username to password field on enter (#96)
Closes #93
2025-10-28 17:35:26 -04:00
damontecres
3ab9eafc7c
Fix crash when changing seasons & improve error page (#94)
Related to #64 

If an error occurred while querying for a season's episodes, the app
would crash instead of display the error message.

This PR fixes the app crash, but not the underlying query issue. It also
changes the error page to show a button for sending logs to the server
immediately.
2025-10-28 17:04:15 -04:00
Damontecres
50b0b0a508
Release v0.2.1 2025-10-28 13:23:38 -04:00
damontecres
1db48334ab
Sort & format subtitle download options (#88)
Sorts the subtitle download options by community rating and downloads.

Also abbreviates the download count if it's large (eg 5133->5.1k).
2025-10-28 13:07:30 -04:00
damontecres
af0e853c21
Don't send crash reports as json (#84)
This is a workaround for jellyfin/jellyfin-web#7267 to ensure the client
logs are not valid JSON and can be rendered on the `10.11.x` web UI.

Related to #82
2025-10-27 21:22:44 -04:00
damontecres
f1f6b729aa
Fix several UI focus issues (#81)
Remembers the page position & focused item on both Movie & Series detail
pages

Only loads similar movies & series once so that if you click on one and
go back, it doesn't refresh the entire list

Remember the tab on the Favorite page (if remember tabs is enabled in
settings)
2025-10-27 20:44:04 -04:00
damontecres
c4df751918
Fallback to transcoding if direct play fails (#79)
If direct playing (or direct streaming) fails on device, attempt to fall
back to transcoding.

Also display more error information if available
2025-10-27 16:11:30 -04:00
damontecres
07a0db8e98
Add ability to search & download subtitles (#78)
Closes #74 

Adds an option to download subtitles from a remote source. This uses the
Jellyfin server's API, so you need to install a plugin on your server
that provides subtitle searching such as the [official OpenSubtitles
plugin](https://github.com/jellyfin/jellyfin-plugin-opensubtitles).

Initially it will search for subtitles in the device's current language,
but you can search for a different language if needed.
2025-10-27 15:53:58 -04:00
damontecres
4f5b0c7eee
Update bug.yml 2025-10-27 15:50:00 -04:00
damontecres
bafd635402
Add setting to change default content scaling (#77)
Closes #53 #71

Adds an advanced playback setting to set a different default global
content scaling. It can still be changed per playback as well.
2025-10-27 14:25:07 -04:00
damontecres
4269d27dad
Search page improvements (#76)
Update the search page results to indicate whether 1) the search is in
progress, 2) there are no results, or 3) the actual results. This makes
it clear when there's actually no results versus the search is just
running slowly.

Also search for collections as well
2025-10-27 10:28:27 -04:00
damontecres
1a7684b458
Minor UI changes (#75)
* Revert transparent cards from #61
* Don't show queue during playback if playing the final item
* Fix nav drawer collection page from showing everything recursively
* Immediately hide the skip intro button when pressed
2025-10-27 10:17:50 -04:00
damontecres
89b9364807
Dependency updates & removing unused code (#70)
Just bumping dependencies and deleting some unused code. No user facing
changes
2025-10-26 18:17:47 -04:00
damontecres
1c1e64a5b9
Fix focus on home page load defaulting to nav drawer (#68)
When the home page loaded, it would only try to focus on the "Resume"
row even if there were no items in that row (so it doesn't appear). This
resulted in the focus defaulting instead to the nav drawer.

This PR fixes focus so it always starts with the first item in the first
row of the home page.
2025-10-26 17:05:41 -04:00
Damontecres
a4dd404847
Release v0.2.0 2025-10-26 09:00:43 -04:00
damontecres
143fc03d9b
Add long click to home page (#66)
Add a popup when long clicking items on the home page

Also fixes a bug where the latest Recorded TV row would show non-Live TV
items if nothing has ever been recorded.
2025-10-26 08:50:24 -04:00
damontecres
2667090485
Send crash reports to the server (#65)
Adds ability to send app crash reports to the last connected server. The
app prompts you before sending. There is an advanced settings to disable
this as well.

Additionally, there is an advanced settings button to send the app logs
to the current server.

The resulting reports can be found on the server's web UI under
Dashboard->Logs

If sharing the logs, make sure there's no private information present!
2025-10-26 07:35:42 -04:00
damontecres
05f3811149
Add Live TV & DVR Support (#49)
Closes #1 

Adds support for Live TV & DVR functionality.

TODO:
- [x] EPG / TV Guide
- [x] View DVR schedule
- [x] Play live TV channel
- [x] Record program
- [x] Record Series
- [x] Cancel recordings
- [x] Access previously recorded content
2025-10-23 22:46:16 -04:00
damontecres
a35ecb6570
Fixing a few UI issues (#61)
Gathering a bunch of smaller changes into one PR

### Changes
* Changes the behavior of the "combine continue watching & next up" to
apply only to TV Shows which basically makes the 'Continue Watching'
just movies and 'Next Up' just TV episodes
* Banner card (Series & Home pages) will stretch images to fit
* Close the "more" nav item if navigating to a non-more one (from #60)
* Fix episodes not updating/marked played when returning to series page
after playing multiple episodes
* Don't show the Intro/Outro skip button the Next Up dialog is showing
* Always should black background for playback, even when loading
2025-10-23 22:10:41 -04:00
damontecres
fc4954b561
Add ability to customize the navigation drawer menu (#60)
Adds support for customizing the items listed on the left side
navigation drawer menu. Each item can be toggled on/off in settings.

The hidden ones are still accessible under "More" on the nav drawer,
which only appears if some items are hidden.

Additionally, if any of menu items are hidden, their "latest" content
will not appear on the home page.

The setting is stored per user profile.
2025-10-23 15:57:26 -04:00
damontecres
27d0a17a00
Support remote media control commands (#58)
Adds support for remote media controls (play, pause, etc) and displaying
messages.
2025-10-22 21:04:25 -04:00
damontecres
b5771db54e
Save remembered tabs per user (#57)
If the remember tab setting is enabled, tabs will be remembered per user
profile now
2025-10-22 19:24:17 -04:00
damontecres
f5ee5eceab
Add favoriting to the 'more' menus (#56)
Follow up to #55 & #38 

Adds the option to favorite/unfavorite from the "More" dialog menus for
movies & shows.
2025-10-22 18:12:14 -04:00
damontecres
b8202c06ff
Add favorites page (#55)
Closes #38 

Add a nav drawer link to a new favorites page which shows favorited
Movies, TV Shows, and Episodes.

Also adds a button to movies & tv shows to set/unset favorite status.
2025-10-22 16:49:27 -04:00
damontecres
298016b131
Show similar items on movie & tv show pages (#52)
Adds a row of similar items to the Movie & TV Show details pages
2025-10-21 23:30:18 -04:00
damontecres
177e009f8c
Format changelog in app (#51)
Formats the in-app changelog when updating

Also allows for force updating to allow for switching develop tags.
2025-10-21 19:48:19 -04:00
damontecres
6344cc77bf
Support remote movie trailers (#50)
Show remote trailers on movie details page. They play in a separate
compatible app such as YouTube.

Local trailers are shown first
2025-10-21 18:09:57 -04:00
Damontecres
2770ae1e4a
Release v0.1.2 2025-10-21 11:05:56 -04:00
Damontecres
9f3d83e831
Fix skip buttons not timing out 2025-10-20 21:26:11 -04:00