Commit graph

338 commits

Author SHA1 Message Date
damontecres
384401a72c
Customize display of library grid pages (#368)
## Details

Adds options to customize how grid pages are displayed. Every grid page
can be individually customized.

The options are saved per user on the device and restored when
navigating back to the page. The pages that support it have a new button
next to the sort/filter buttons and changes are updated live.

The options are:
* Primary or Thumb image
* Aspect ratio
* Show details header w/ backdrop (similar to the one on the home page)
* Number of columns
* Spacing between cards
* Card image content scale (eg Fit, Fill, Crop, etc)

Note: the Genre tabs' grids cannot be customized yet

### Other changes
- Nav drawer now opens over top of content instead of pushing it
- Images for most cards are fetched with actual fill size

### Possible future work
* Customize Genre grids
* Add more image types, banners?
* Add similar customization options to pages with rows, eg Home page and
Recommended tabs

## Example

For example, this is a movie library using thumb images with 8 columns
and reduced spacing. It also shows the details header

## Issues
Closes #186
Related to #72
2025-12-04 12:20:50 -05:00
damontecres
56bf3cb7a0
Optimizes recommended content & image caching (#359)
## Details
This PR contains a number of optimizations

### Images
Updates to request images with maximum sizes

The max sizes are estimates on the maximum number of pixels that will be
actually displayed. This means the server is downscaling large images
which means 1) better quality downscaling and 2) smaller images sent
over the network and cached

This should mean slightly better quality images and more images that can
be cached locally

### Paging
Reduces network calls when fetching paginated data, ie grid pages and
some rows. This PR combines the total record count & first page queries
which slightly reduces total time to load paginated data.

Additionally, on movies/tv show recommended pages, the rows now only
fetch a limited number of items (same as number on home page). While
they previously fetched using pagination, there is an overhead required
to paginate requests, so this is slightly faster.

### Async recommended fetching
On movies/tv show recommended pages, the rows are now fetched completely
separately from each other. Previously, the rows were requested
separtely, but each was only added to the UI in order as each completed.
Now they will add as the data arrived.

Note: Top unwatched TV shows is still very slow on `10.11.x`, see #204


### Image cache

The local, on-disk image cache size is increased from 100mb to 200mb.
Combined with the smaller images, this covers about 1500-2000 poster
images, but will vary by server.

The cache size is now also configurable in advanced settings from 25mb
to 1000mb. Additionally, you can see how much of both the disk and
memory caches are in use.

## Issues
Closes #330 
Related to #120
2025-12-02 16:00:21 -05:00
damontecres
8b33dd6d1f
Updates series details, adds movie genres, & adds critic rating (#358)
## Details

Updates the series details page to match style & layout of the new movie
details page (from #279 & #327)

Adds genre list to movie details, it was already on series details

Adds critic rating using fresh or rotten tomato icons, if available

## Screenshots
### Movie

![movie](https://github.com/user-attachments/assets/9bb9cb2e-921c-4f4b-8ea1-a1e73b1842f1)
### TV Show

![series](https://github.com/user-attachments/assets/542989da-bf39-46a4-aefb-7728613a97b1)

## Issues
Closes #357
Closes #347

## Attribution
The fresh & rotten tomato images were sourced from:
- https://commons.wikimedia.org/wiki/File:Rotten_Tomatoes.svg
- https://commons.wikimedia.org/wiki/File:Rotten_Tomatoes_rotten.svg
Credit: Emily Oberman from Pentagram, modified by Throast, Public
domain, via Wikimedia Commons
2025-12-01 18:04:40 -05:00
damontecres
eca3268a7d
Add setting to increase logging verbosity (#354)
Adds a toggle to increase the verbosity of the app logs for
release/production builds

Most users won't need to use this, but it can be helpful when [gathering
app
logs](https://github.com/damontecres/Wholphin/wiki/Gathering-app-logs)
to report an issue.
2025-11-30 17:27:41 -05:00
arcker95
117d67240a
Translated using Weblate (Italian)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2025-11-28 20:57:15 +00:00
Vistaus
dcfe0086c1
Translated using Weblate (Dutch)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
2025-11-28 20:57:15 +00:00
streamyfinchris
ffa423f4f2
Translated using Weblate (Swedish)
Currently translated at 85.1% (207 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
2025-11-28 20:57:15 +00:00
damontecres
90db5820ba
Translated using Weblate (Spanish)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2025-11-28 20:57:15 +00:00
rcv11x
5ad66a1783
Translated using Weblate (Spanish)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2025-11-28 20:57:15 +00:00
damontecres
f1bcc57726
Translated using Weblate (Spanish)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2025-11-28 20:57:15 +00:00
Vistaus
0bef9045d4
Added translation using Weblate (Dutch) 2025-11-28 20:57:15 +00:00
arcker95
dd198de152
Translated using Weblate (Italian)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2025-11-28 20:57:15 +00:00
arcker95
0e4f214f7a
Translated using Weblate (Italian)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2025-11-28 20:57:15 +00:00
SimonHung
e59cc30db0
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 99.1% (241 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2025-11-28 20:57:15 +00:00
RabSsS
aa67a15f29
Translated using Weblate (French)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2025-11-28 20:57:15 +00:00
alexq83
0b104a4e08
Translated using Weblate (German)
Currently translated at 99.5% (242 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2025-11-28 20:57:15 +00:00
SimonHung
c976df2359
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 98.3% (239 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2025-11-28 20:57:15 +00:00
RabSsS
630321b7ab
Translated using Weblate (French)
Currently translated at 99.5% (242 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2025-11-28 20:57:15 +00:00
Priit Jõerüüt
0036e83e0d
Translated using Weblate (Estonian)
Currently translated at 100.0% (243 of 243 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2025-11-28 20:57:15 +00:00
arcker95
3165c58278
Translated using Weblate (Italian)
Currently translated at 61.8% (149 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2025-11-28 20:57:15 +00:00
RabSsS
ef9cb65d37
Translated using Weblate (French)
Currently translated at 99.5% (240 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2025-11-28 20:57:15 +00:00
Priit Jõerüüt
b9cf7dd679
Translated using Weblate (Estonian)
Currently translated at 73.0% (176 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2025-11-28 20:57:15 +00:00
arcker95
907df16112
Translated using Weblate (Italian)
Currently translated at 46.4% (112 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2025-11-28 20:57:15 +00:00
arcker95
bb61162752
Added translation using Weblate (Italian) 2025-11-28 20:57:14 +00:00
SimonHung
5dcf5e867c
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 88.7% (214 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2025-11-28 20:57:14 +00:00
junyou
b0f17a5062
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 88.7% (214 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2025-11-28 20:57:14 +00:00
junyou
24c11aa9ab
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 88.7% (214 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2025-11-28 20:57:14 +00:00
opakholis
e96f17d3c6
Translated using Weblate (Indonesian)
Currently translated at 100.0% (241 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/id/
2025-11-28 20:57:14 +00:00
junyou
70a085eef2
Added translation using Weblate (Chinese (Traditional Han script)) 2025-11-28 20:57:14 +00:00
RabSsS
6b83a93f4d
Translated using Weblate (French)
Currently translated at 57.2% (138 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2025-11-28 20:57:14 +00:00
Codeberg Translate
1c7206a1ff
Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/
2025-11-28 20:57:14 +00:00
RabSsS
1f81157454
Translated using Weblate (French)
Currently translated at 7.0% (17 of 241 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2025-11-28 20:57:14 +00:00
RabSsS
78d626ea88
Added translation using Weblate (French) 2025-11-28 20:57:14 +00:00
alexq83
cea0412dd5
Translated using Weblate (German)
Currently translated at 100.0% (230 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2025-11-28 20:57:14 +00:00
Priit Jõerüüt
8dda285005
Translated using Weblate (Estonian)
Currently translated at 62.6% (144 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2025-11-28 20:57:14 +00:00
Sk4hnt42
8f15533218
Translated using Weblate (German)
Currently translated at 99.5% (229 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2025-11-28 20:57:14 +00:00
streamyfinchris
b8646df0c3
Translated using Weblate (Swedish)
Currently translated at 86.9% (200 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
2025-11-28 20:57:14 +00:00
damontecres
296d7b9226
Setting for subtitle margin & fix subtitle opacity settings (#338)
Adds a subtitle style option to set the margin below unstyled subtitles.
This is roughly the percent of the screen below the subtitles. It
applies to both ExoPlayer & MPV.

Also fixes font & background opacity not being applied in some cases.

Fixes #225
Closes #178
2025-11-28 15:57:11 -05:00
damontecres
5b96be6662
Updates to details pages including videos' stream details display (#279)
## Details

This PR updates the detail pages for Movies & TV Shows.

- Increase backdrop image size & brightness (now matches home page)
- Increase max width for titles
- Decrease max width for detail text
- Switch to using a customized display labels for video, audio, &
subtitle streams

Additional change for movie pages:

- Don't dim movie details text
- Move video stream details below play buttons
- Move first row up higher

### Labels

Instead of using the server provided `DisplayTitle`, create display
labels in-app. In general, this shortens the text without losing
significant detail. It is similar to the official app.

Some of the changes:
- Don't show "SDR", only "HDR"
- Simplify audio channel info, eg "Surround 5.1" => "5.1"
- Show chosen subtitle language
- Show chosen subtitle codec
- Show "(+#)" if there are additional audio or subtitle tracks
- Use gray background slightly tinted by the theme color

## Issues
Closes #239
2025-11-24 15:35:55 -05:00
damontecres
78e7eb421f
Add ability to filter libraries, collection, etc (#308)
Adds a button to filter contents next to the sort button on grid pages

The filters are saved and restored you return to the page. It works with
#278, playing the filtered items in the sorted order.

The drop down menus for both sorting & filtering are updated to closer
match the overall look.

Filters for:
- Played or unplayed
- Favorite or not
- Genres
- Community (star) rating
- Parental rating
- Video type (HD vs SD, etc)
- Release year and/or decade
2025-11-23 10:40:18 -05:00
damontecres
9a3a33fdd3
Use full phases for skip buttons for better translations (#304)
Changes the skip segment button text to use a single phrase instead of
concatenating two strings. This allows correct context when translating.

Follow up from #292
2025-11-22 18:39:58 -05:00
damontecres
df78b42bac
Easier initial setup for server URLs (#300)
Use the server scoring API when adding a new server. This allows just
entering a hostname or IP address without the scheme (`http`/`https`) or
port in most cases.

Note: non-standard ports would still need to be provided

Closes #5 
Closes #296
2025-11-22 12:48:39 -05:00
Damontecres
df8ec83841
Merge remote-tracking branch 'weblate/main' 2025-11-22 11:10:22 -05:00
damontecres
a3305b6b57
First batch of translations (#289)
Adding several translations contributed by users!

Thanks!

---------

Co-authored-by: damontecres <damontecres@noreply.codeberg.org>
Co-authored-by: streamyfinchris <streamyfinchris@noreply.codeberg.org>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
Co-authored-by: alexq83 <alexq83@noreply.codeberg.org>
Co-authored-by: n8llcaster <n8llcaster@noreply.codeberg.org>
Co-authored-by: opakholis <opakholis@noreply.codeberg.org>
Co-authored-by: texxlan <texxlan@noreply.codeberg.org>
Co-authored-by: Gigaa <gigaa@noreply.codeberg.org>
2025-11-21 15:25:02 -05:00
damontecres
815ce71735
Translated using Weblate (German)
Currently translated at 100.0% (230 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2025-11-21 20:18:49 +00:00
Sk4hnt42
364a74c791
Translated using Weblate (German)
Currently translated at 100.0% (230 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2025-11-21 20:18:49 +00:00
Gigaa
7250007bc4
Translated using Weblate (Norwegian Bokmål)
Currently translated at 2.1% (5 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nb_NO/
2025-11-21 20:18:49 +00:00
Gigaa
1834b06edb
Added translation using Weblate (Norwegian Bokmål) 2025-11-21 20:18:49 +00:00
texxlan
df930b8548
Translated using Weblate (German)
Currently translated at 99.5% (229 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2025-11-21 20:18:49 +00:00
texxlan
ef7d0ad07c
Translated using Weblate (German)
Currently translated at 76.0% (175 of 230 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2025-11-21 20:18:49 +00:00