Commit graph

1434 commits

Author SHA1 Message Date
North-DaCoder
cd263fadd3
Translated using Weblate (German)
Currently translated at 100.0% (589 of 589 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-06-21 21:06:23 +00:00
Pwnisher
060641ece3
Translated using Weblate (Romanian)
Currently translated at 56.1% (330 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ro/
2026-06-21 21:06:23 +00:00
gatisr
afe26f3db4
Translated using Weblate (Latvian)
Currently translated at 38.9% (229 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/lv/
2026-06-21 21:06:23 +00:00
EmadAljohani
222c6c4924
Translated using Weblate (Arabic)
Currently translated at 25.8% (152 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ar/
2026-06-21 21:06:23 +00:00
alexkahler
66459bb2fc
Translated using Weblate (Danish)
Currently translated at 66.6% (392 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/da/
2026-06-21 21:06:23 +00:00
RafaelSoaresP
e80d689603
Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.3% (537 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt_BR/
2026-06-21 21:06:23 +00:00
Sathen
8168a07dc6
Translated using Weblate (Ukrainian)
Currently translated at 68.5% (403 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/uk/
2026-06-21 21:06:23 +00:00
veisen
1ce07862af
Translated using Weblate (Czech)
Currently translated at 77.7% (457 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/cs/
2026-06-21 21:06:23 +00:00
oyvhov
1a90b480eb
Translated using Weblate (Norwegian Nynorsk)
Currently translated at 54.9% (323 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nn/
2026-06-21 21:06:23 +00:00
Rand0mB0y
7f43642467
Translated using Weblate (Greek)
Currently translated at 29.0% (171 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/el/
2026-06-21 21:06:23 +00:00
efko
5c5c5cd202
Translated using Weblate (Greek)
Currently translated at 29.0% (171 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/el/
2026-06-21 21:06:23 +00:00
adambibor
376ae48aeb
Translated using Weblate (Hungarian)
Currently translated at 53.7% (316 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/hu/
2026-06-21 21:06:23 +00:00
Chosnuk
4a29672569
Translated using Weblate (Polish)
Currently translated at 95.7% (563 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pl/
2026-06-21 21:06:23 +00:00
Pawsi
8ba6b1c613
Translated using Weblate (Polish)
Currently translated at 95.7% (563 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pl/
2026-06-21 21:06:23 +00:00
Tellos
26b64bd636
Translated using Weblate (Russian)
Currently translated at 55.2% (325 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ru/
2026-06-21 21:06:23 +00:00
Vistaus
e177f36212
Translated using Weblate (Dutch)
Currently translated at 82.3% (484 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
2026-06-21 21:06:23 +00:00
arcker95
d5d0f99474
Translated using Weblate (Italian)
Currently translated at 95.7% (563 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-06-21 21:06:23 +00:00
RabSsS
27ebf9d621
Translated using Weblate (French)
Currently translated at 95.7% (563 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-06-21 21:06:22 +00:00
oyvhov
61d07a9d29
Translated using Weblate (Norwegian Bokmål)
Currently translated at 52.3% (308 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nb_NO/
2026-06-21 21:06:22 +00:00
n8llcaster
bedbde3ebb
Translated using Weblate (Slovak)
Currently translated at 86.2% (507 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sk/
2026-06-21 21:06:22 +00:00
streamyfinchris
06c99b2aa1
Translated using Weblate (Swedish)
Currently translated at 82.6% (486 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
2026-06-21 21:06:22 +00:00
danpergal84
891cbc8ae3
Translated using Weblate (Spanish)
Currently translated at 100.0% (588 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-06-21 21:06:22 +00:00
rcv11x
21619c5e10
Translated using Weblate (Spanish)
Currently translated at 100.0% (588 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-06-21 21:06:22 +00:00
damontecres
379da64442
Translated using Weblate (Spanish)
Currently translated at 100.0% (588 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-06-21 21:06:22 +00:00
texxlan
37c02e2491
Translated using Weblate (German)
Currently translated at 95.5% (562 of 588 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-06-21 21:06:22 +00:00
renovate[bot]
6a18e30314
Update Github Actions to v7 (#1585) 2026-06-21 17:06:18 -04:00
Damontecres
ae49e977ce
Fix crash on certain grid pages when the app is sent to the background (#1605)
## Description
Fixes a crash when backgrounding/restoring the app on certain grid pages

### Related issues
Fixes https://github.com/damontecres/Wholphin/issues/1598
Replaces #1599

### Testing
Emulator

It's easy to reproduce by going to a library's recommended tab,
scrolling to any row's view more, then pressing home to background the
app

## Screenshots
N/A

## AI or LLM usage
None, but includes a commit from #1599 which did, see the note there

---------

Co-authored-by: Christian Tismer <tismer@stackless.com>
2026-06-20 20:06:34 -04:00
Damontecres
8e0798ee16
Unit tests for PlaybackViewModel & several services (#1592)
## Description
This PR contains only tests, there are no user facing changes.

Adds tests for playback covering:
- Playing next, previous, or within the queue
- Media segments (intro/credit)
- Playing intros before media

Adds basic unit tests for track selection. This uses a new "test track"
builder which can model various files and build them as represented
(differently) by the server, ExoPlayer, and MPV. In future, this will
allow for testing of more complex files.

Also add unit tests for services covering things like:
- Fetching extras
- Deleting media
- Server/user management & auth

### Related issues
Will help with testing/verifying some issues like #1475, #1548 

### Testing
Ran the unit tests!

## Screenshots
N/A

## AI or LLM usage
None
2026-06-19 11:06:35 -04:00
renovate[bot]
2afac3a1a5
Update openapi.generator to v7.23.0 (#1542) 2026-06-18 18:59:54 -04:00
renovate[bot]
3fd2cbbbd6
Pin dependencies (#1589) 2026-06-18 18:58:34 -04:00
Damontecres
0a1f2a5fef
Update renovate settings (#1588)
Just updating the renovate config to separate out android TV
dependencies & use digests for GHA.
2026-06-18 12:00:39 -04:00
Damontecres
e17ae3eb8a
Use Wholphin-specific dispatchers (#1583)
## Description
Switches all usages of `kotlinx.coroutines.Dispatchers` to
`WholphinDispatchers`.

`WholphinDispatchers` provides an easier and more reliable mechanism to
use a test dispatcher in unit tests. For regular app usage,
`WholphinDispatchers` just delegates to `Dispatchers`.

There are no user facing changes

### Related issues
None

### Testing
Basic emulator testing & unit tests

## Screenshots
N/A

## AI or LLM usage
None
2026-06-18 11:17:19 -04:00
Damontecres
ddbec0da73
Fix issues from #1530 2026-06-14 19:55:01 -04:00
jankg
8534c58426
Translated using Weblate (German)
Currently translated at 100.0% (575 of 575 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-06-14 17:36:51 -04:00
Damontecres
fa5cc99c3b
De-duplicate string resource keys (#1560)
## Description
Ensures that all string & plural resource keys are unique. This should
help make sure all of the strings are shown in weblate's translation.

### Related issues
Related to #1551

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-06-12 01:24:24 -04:00
Damontecres
38b4a8c4de
Play or shuffle series, season, collections, & playlists from context menu (#1544)
## Description
Adds options to the context menu to play or shuffle items in a series,
season, collection, or playlist. So you can long click a TV show and
play it directly.

Playing a TV show will play the next up episode (same as the play button
on the series detail page).

Playing a season, collection, or playlist will start from the beginning.

Also, removes the green play arrows and uses the same neutral color as
other icons.

### Related issues
Closes #1451
Closes #1507

### Testing
Emulator from library pages & series detail pages

## Screenshots
N/A

## AI or LLM usage
None
2026-06-10 19:30:07 -04:00
Damontecres
f7f0ea9cca
Fixes missing parental ratings & focus loss when changing filters (#1559)
## Description
- Ensures all parent ratings are shown in the filter drop down
- Fixes focus loss after filtering library and there are no results

### Related issues
Fixes #1535 (along w/ #1529)
Fixes #1534

### Testing
Emulator w/ a UK movie library

## Screenshots
N/A

## AI or LLM usage
None
2026-06-10 19:29:49 -04:00
Damontecres
01bd3249fa
Fixes two row bouncing UI issues (#1543)
## Description

Fixes row bounce using `SeasonCard` when are two exactly two items. This
was done by calculating the y-offset in the `layout` modifier instead of
`offset`. This has the side effect of probably being very slightly more
efficient since only 1 animation state is needed now.

Fixes row bounce on the second row of the home page if the first row is
empty and not shown.

### Related issues
Fixes #1528
Fixes #1271

### Testing
Emulator in different situations. Also checked the layout inspector to
make sure the optimizations from #1184 weren't affected

## Screenshots
N/A

## AI or LLM usage
None
2026-06-08 17:23:09 -04:00
Damontecres
93d601e7bf
Improvements to debug page (#1538)
## Description
Makes some improvements to the debug page. Also adds some audio device
listing for debugging.

### Related issues
N/A

### Testing
Emulator & shield

## Screenshots
N/A

## AI or LLM usage
None
2026-06-08 13:45:48 -04:00
Damontecres
b49926f80b
Store remembered tabs in app database instead of preferences (#1541)
## Description
Moves storing the remembered tabs from app preferences to the app
database. This means deleting the user will remove the remembered tabs
and the app preferences file is smaller and faster to load.

The remembered tabs are migrated automatically when the app is updated.

There are no significant user facing changes in this PR.

### Related issues
N/A

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-06-08 13:45:38 -04:00
Damontecres
a4ee1e5175
Only show relevant parental ratings when filtering (#1529)
## Description
Updates the parental rating filter so it only shows the relevant options
instead of all of them. This is now the same behavior as the web UI.

Additionally, the filter options are cached for a short time so the UI
doesn't need to load them every time the menu is opened.

Dev note: Refactors `FilterUtils` into a service which allows for the
caching

### Related issues
Closes #410

### Testing
Emulator with movie & tv show libraries

## Screenshots
N/A

## AI or LLM usage
None
2026-06-07 07:15:40 -04:00
Damontecres
d1b8c09615
Add a shortcut to chosing the version of an item (#1522)
## Description
Based on feedback from users, many felt it was difficult to 1) tell if
multiple version of an item existed and 2) choose the version they want

So this PR adds a new expandable button next to Play/Resume/Restart to
choose the version. It is a shortcut to the More->Choose Version dialog,
but also serves as a more prominent indicator that there are multiple
versions. The button is only shown if there are 2+ versions to choose
from.

Also adds displaying the bitrate in the choose version dialog just in
case there are identically named versions with the same resolution.

Dev note: I also added some docs for classes & functions related to
choosing a version

### Related issues
Related to #652

### Testing
Emulator

## Screenshots
<img width="1280" height="720" alt="choose_version_button_unfocused
Large"
src="https://github.com/user-attachments/assets/4f6051ef-b6ae-4fad-9d54-3840523350ed"
/>

<img width="1280" height="720" alt="choose_version_button Large"
src="https://github.com/user-attachments/assets/0e8412bc-2d18-4c6c-987a-2f067363ad2c"
/>

## AI or LLM usage
None
2026-06-07 07:15:30 -04:00
Damontecres
99fab9a383
Release v1.0.1
Some checks failed
Create release / publish (push) Has been cancelled
2026-06-05 12:30:39 -04:00
Damontecres
2a002f3d11
Translations 2026-06-05 (#1526)
Updates translations as of 2026-06-05

Thanks to all of the contributors!

---------

Co-authored-by: streamyfinchris <streamyfinchris@noreply.codeberg.org>
Co-authored-by: SimonHung <simonhung@noreply.codeberg.org>
Co-authored-by: arcker95 <arcker95@noreply.codeberg.org>
Co-authored-by: TheMatrixan <thematrixan@noreply.codeberg.org>
Co-authored-by: tal_sarid <tal_sarid@noreply.codeberg.org>
Co-authored-by: pavel-miniutka <pavel-miniutka@noreply.codeberg.org>
Co-authored-by: nofkclue <nofkclue@noreply.codeberg.org>
Co-authored-by: ymir <ymir@noreply.codeberg.org>
Co-authored-by: American_Jesus <american_jesus@noreply.codeberg.org>
Co-authored-by: Wit Krittawit <krittawit.st@gmail.com>
Co-authored-by: North-DaCoder <north-dacoder@noreply.codeberg.org>
2026-06-05 11:43:23 -04:00
North-DaCoder
01081b1985
Translated using Weblate (German)
Currently translated at 100.0% (575 of 575 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-06-05 14:01:15 +00:00
Wit Krittawit
be1b0c0a35
Translated using Weblate (Thai)
Currently translated at 96.8% (557 of 575 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/th/
2026-06-05 14:01:15 +00:00
American_Jesus
33dd630a59
Translated using Weblate (Portuguese)
Currently translated at 100.0% (575 of 575 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
2026-06-05 14:01:15 +00:00
ymir
8a5988b95e
Translated using Weblate (French)
Currently translated at 100.0% (575 of 575 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-06-05 14:01:14 +00:00
nofkclue
9e15db4143
Translated using Weblate (German)
Currently translated at 99.8% (574 of 575 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-06-05 14:01:14 +00:00
pavel-miniutka
ac2e1e8f64
Translated using Weblate (Belarusian)
Currently translated at 1.5% (9 of 575 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/be/
2026-06-05 14:01:14 +00:00