Commit graph

851 commits

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

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-06 21:16:21 +00:00
RafaelSoaresP
95e0725d8d
Translated using Weblate (Portuguese (Brazil))
Currently translated at 76.8% (386 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt_BR/
2026-03-06 21:16:21 +00:00
n8llcaster
d0f7908648
Translated using Weblate (Slovak)
Currently translated at 44.6% (224 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sk/
2026-03-06 21:16:21 +00:00
EmadAljohani
062a3e99a4
Translated using Weblate (Arabic)
Currently translated at 23.9% (120 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ar/
2026-03-06 21:16:21 +00:00
arcker95
b4c35ce41b
Translated using Weblate (Italian)
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-03-06 21:16:21 +00:00
isbit
0c19708774
Translated using Weblate (Swedish)
Currently translated at 54.5% (274 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
2026-03-06 21:16:21 +00:00
North-DaCoder
b6cef6a4b1
Translated using Weblate (German)
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-06 21:16:21 +00:00
zyplex
0d326b49e7
Translated using Weblate (German)
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-06 21:16:21 +00:00
idezentas
d69b6d6bb4
Translated using Weblate (Turkish)
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-06 21:16:21 +00:00
Outbreak2096
b0236cbd3b
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-03-06 21:16:21 +00:00
SimonHung
3009536670
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-03-06 21:16:21 +00:00
danpergal84
000bd10622
Translated using Weblate (Spanish)
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-06 21:16:21 +00:00
idezentas
4ee8a5b4fc
Translated using Weblate (Turkish)
Currently translated at 100.0% (501 of 501 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-06 21:16:21 +00:00
Outbreak2096
61369ffac8
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (501 of 501 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-03-06 21:16:20 +00:00
danpergal84
d4cb9a6c92
Translated using Weblate (Spanish)
Currently translated at 100.0% (501 of 501 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-06 21:16:20 +00:00
ymir
d051b0d402
Translated using Weblate (French)
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-03-06 21:16:20 +00:00
opakholis
01ac0dec4c
Translated using Weblate (Indonesian)
Currently translated at 98.3% (491 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/id/
2026-03-06 21:16:20 +00:00
American_Jesus
3284a40084
Translated using Weblate (Portuguese)
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
2026-03-06 21:16:20 +00:00
zyplex
49667bc053
Translated using Weblate (German)
Currently translated at 79.1% (395 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-06 21:16:20 +00:00
American_Jesus
46c7993836
Translated using Weblate (Portuguese)
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
2026-03-06 21:16:20 +00:00
EmadAljohani
9daa6c9337
Added translation using Weblate (Arabic) 2026-03-06 21:16:20 +00:00
idezentas
321ef8965a
Translated using Weblate (Turkish)
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-06 21:16:20 +00:00
arcker95
ea4e4ad140
Translated using Weblate (Italian)
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-03-06 21:16:20 +00:00
danpergal84
b2aea426ef
Translated using Weblate (Spanish)
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-06 21:16:20 +00:00
Outbreak2096
fd53206aee
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-03-06 21:16:20 +00:00
SimonHung
7432df3eb1
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (499 of 499 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-03-06 21:16:20 +00:00
idezentas
9aaee3033e
Translated using Weblate (Turkish)
Currently translated at 100.0% (487 of 487 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-06 21:16:20 +00:00
Outbreak2096
c5316343b9
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (487 of 487 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-03-06 21:16:20 +00:00
arcker95
034f91ba3a
Translated using Weblate (Italian)
Currently translated at 100.0% (487 of 487 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-03-06 21:16:20 +00:00
SimonHung
a1d651ae21
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 97.1% (473 of 487 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-03-06 21:16:20 +00:00
American_Jesus
898191e44a
Translated using Weblate (Portuguese)
Currently translated at 93.6% (456 of 487 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
2026-03-06 21:16:20 +00:00
danpergal84
691ae4a1a4
Translated using Weblate (Spanish)
Currently translated at 100.0% (487 of 487 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-06 21:16:20 +00:00
arcker95
c5d6eaa271
Translated using Weblate (Italian)
Currently translated at 97.1% (473 of 487 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-03-06 21:16:19 +00:00
idezentas
0c94a0dbd6
Translated using Weblate (Turkish)
Currently translated at 100.0% (472 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-06 21:16:19 +00:00
Outbreak2096
0f8b5db397
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (472 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-03-06 21:16:19 +00:00
arcker95
cf369b26de
Translated using Weblate (Italian)
Currently translated at 100.0% (472 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-03-06 21:16:19 +00:00
SimonHung
a479afd10a
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (472 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-03-06 21:16:19 +00:00
danpergal84
781c020b67
Translated using Weblate (Spanish)
Currently translated at 100.0% (472 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-06 21:16:19 +00:00
Ray
36162d6fc5
Revert "Integrate with libass-android to support SSA/ASS subtitles in ExoPlayer" (#1051)
Unfortunately, there seem to be issues with switching to
`libass-android`, so reverting those changes so I can cut a release and
troubleshoot later.

Reverts damontecres/Wholphin#569
2026-03-06 16:16:12 -05:00
Ray
ce44e9593b
Screensaver fixes (#1047)
## Description
Fixes a few issues with the in-app & OS screensavers

- Make sure clock is updating for in-app screensaver
- Fix crash if app is force quit before the OS screensaver starts

### Related issues
Fixes #1045 

### Testing
NVIDIA shield

## Screenshots
N/A

## AI or LLM usage
None
2026-03-06 08:46:47 -05:00
Ray
83ebd922d9
Integrate with libass-android to support SSA/ASS subtitles in ExoPlayer (#569)
## Description
Add better ASS/SSA support to ExoPlayer by using
[`libass-android`](https://github.com/peerless2012/libass-android).

This is enabled with the "Use libass for ASS subtitles" advanced
settings for ExoPlayer. It is enabled by default.

### Related issues
Related to #22
2026-03-06 08:34:57 -05:00
Ray
014bed1bf3
Better logic for choosing the display mode (#1039)
## Description
This PR improves the logic used to choose a display mode when refresh
rate and resolution switching are enabled.

As before, matching the refresh rate is prioritized over picking the
resolution. For example, with the display modes of 1080@30 & 720@60 for
a 720@30 video, 1080@30 is used because the frame rate exactly matches.

### Related issues
Fixes #1036

### Testing
Unit tests, added test cases for more situations

## Screenshots
N/A

## AI or LLM usage
None
2026-03-04 19:30:14 -05:00
Ray
354577e2e8
Delete media follow up (#1040)
## Description
A follow up to #1014 to add the delete option in more context menus.
Also improves the "reaction" logic which updates previous pages from
deletions on later pages.

### Related issues
Addresses
https://github.com/damontecres/Wholphin/pull/1014#issuecomment-3987205355
Related to #104

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-03-04 19:30:08 -05:00
Ray
ce6461d23b
Fixes for Jellyseerr login issues (#1031)
## Description
Fixes some issues with Jellyseerr login. Also makes error message more
clear by showing the URLs that were tested and the error that occurred.

Also fixes an issue where you could not remove a Jellyseerr server if it
was previously configured but can no longer connect.

### Related issues
Fixes #1028
Should fix #1022
Related to #747

### Testing
Emulator, tested adding and removing valid & invalid IPs

## Screenshots
N/A

## AI or LLM usage
None
2026-03-04 15:11:09 -05:00
Ray
be90a42c57
Various fixes (#1030)
## Description
Fixes several small issues throughout the app

- Adds 1440p as a resolution option
- Removes the delay when d-pad seeking on the seek bar & reduces it
slightly when controls are hidden
- Fixes padding one home customize pages
- Adds a title to the search for dialog

### Related issues
Fixes #1017

### Testing
Emulator mostly

## Screenshots
N/A

## AI or LLM usage
None
2026-03-03 13:46:55 -05:00
Ray
0004701296
Dev: add simple automated UI test setup (#1027)
## Description
This PR is mostly a proof-of-concept for setting up automated UI
testing. The tests use Roboelectric so they can run without an emulator.
There is also a sample instrumented test for running on emulators or
devices for future tests.

It adds two basic automated UI tests for adding a server. These are sort
integration tests because they use the actual implementations for the
view model and services like `ServerRepository` and `JellyfinServerDao`.

Also, moves the bulk of `MainActivity`'s compose code into a function
for future tests.

### Related issues
N/A

### Testing
Local testing

## Screenshots
N/A

## AI or LLM usage
None
2026-03-03 13:46:46 -05:00
Ray
8935067c5a
Add option to delete media (#1014)
## Description
Adds a setting to enable "Media management" which adds a context menu
item to delete media. This is accessible using either the More button or
long clicking.

You can delete episodes, seasons, series and movies/videos.

If order for the option to appear the current user must have server-side
settings for "Allow media deletion from" enabled for the library and the
in-app setting under Settings->Advanced Settings->"Show media management
options".

### Related issues
Closes #104 

### Testing
Emulator

## Screenshots
### Context menu
![delete_context_2
Large](https://github.com/user-attachments/assets/cabc3c24-1b43-4f88-8d71-b7275f9eadc4)


### Confirmation
![delete_confirm
Large](https://github.com/user-attachments/assets/8036dde1-8a51-424b-bbdd-f2826dd3e0ab)

## AI or LLM usage
None
2026-03-02 15:38:41 -05:00
Justin Caveda
0b73b4cf64
Fix: optimize suggestions performance (#849)
## Description
- Aims to further optimize performance for the suggestions fetching

### Related issues
Fixes #833 

### Testing
Android Emulator
NVIDIA Shield Pro 2019

## Screenshots
N/A

## AI or LLM usage
AI being used to assist with updating/creating unit tests
2026-03-01 16:59:44 -05:00
voc0der
fd9063fbad
Hold-to-seek acceleration for playback DPAD and seekbar (#900)
## Description
- Adds hold-to-seek acceleration for left/right DPAD input during
playback skip handling.
- Reuses one shared, duration-aware acceleration profile for both
playback DPAD and seekbar skipping.
- Extracts acceleration logic into a shared helper to keep playback and
seekbar behavior consistent.
- Slows the acceleration ramp (about one-third) to improve control
during longer holds.
- Preserves tap-on-release behavior: single taps seek on key release,
while holds seek on repeated key-down without an extra release step.
- Normalizes unknown/unset duration values to use the shortest-content
acceleration profile.
- Added unit coverage for shared seek acceleration math to prevent
accidental regression in ramp thresholds.

### Related issues
Supersedes #846  
Incorporates #784  
Closes #522

### Testing
Tested on Nvidia Shield Pro 2019.

- Quick left/right tap still performs normal skip behavior.
- Holding left/right seeks repeatedly with progressive acceleration.
- Seekbar hold uses the same acceleration profile as playback hold.
- Releasing after a hold does not trigger an extra seek step.

## AI or LLM usage
Codex 5.3 and Claude Opus 4.6 were used for implementation, debugging,
and cross-review. Changes were manually validated on device.

---------

Co-authored-by: Ray <154766448+damontecres@users.noreply.github.com>
2026-02-28 14:35:02 -05:00
Ray
55466f803c
Better animation to show/hide headers on grid pages (#1015)
## Description
Changes the animation for showing/hiding the header title/buttons on
grid pages.

This eliminates the awkward jump the grid does to fill the screen.
Instead it smoothly resizes.

### Related issues
Fixes the second item in #221

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-27 01:00:44 -05:00