Commit graph

1067 commits

Author SHA1 Message Date
Damontecres
138efcde00
Fix issue templates [skip ci] 2026-02-25 15:09:46 -05:00
Ray
9d857bc59e
Move new feature requests to discussions (#984)
## Description
Update the issue templates to direct new feature requests to GitHub
Discussions

### Related issues
Closes #982
2026-02-25 15:08:09 -05:00
Ray
a7e86fbc15
Add in-app & Android TV screensaver (#946)
## Description
Adds both an optional in-app and Android TV OS (DreamService)
screensaver

Has settings for:
- Starting delay, options from 30s to 1 hour
- Duration to show each image, 30s to 2 minutes
- Show clock (separate from app-wide clock)
- Toggle animated zooming
- Set a max age rating to limit what content is shown
- Included media types: movies, tv shows, and/or photos

By default only Movies & TV Shows are included. But if you have like
family albums on your server, you could enable Photos too.

There's also an button to start the screensaver so you can see what it
looks like.

### Related issues
Closes #230

### Testing
Emulator, Onn 4k pro, nvidia shield using both in-app and OS
screensavers

## Screenshots
![screensaver_settings
Large](https://github.com/user-attachments/assets/9b3240dd-81cb-4c20-bc4e-b2bf38698b2f)

## AI or LLM usage
None

## Acknowledgements

Some of the skeleton code for setting up the `DreamService` with the
right lifecycle was copied and modified from the [official app's
implementation](https://github.com/jellyfin/jellyfin-androidtv/blob/master/app/src/main/java/org/jellyfin/androidtv/integration/dream/DreamServiceCompat.kt).
2026-02-25 14:11:00 -05:00
renovate[bot]
536e8d366c
Update Dependencies to v3.4.0 (#970)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [io.coil-kt.coil3:coil-svg](https://redirect.github.com/coil-kt/coil)
| `3.3.0` → `3.4.0` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.coil-kt.coil3:coil-svg/3.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.coil-kt.coil3:coil-svg/3.3.0/3.4.0?slim=true)
|
| [io.coil-kt.coil3:coil-gif](https://redirect.github.com/coil-kt/coil)
| `3.3.0` → `3.4.0` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.coil-kt.coil3:coil-gif/3.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.coil-kt.coil3:coil-gif/3.3.0/3.4.0?slim=true)
|
|
[io.coil-kt.coil3:coil-network-okhttp](https://redirect.github.com/coil-kt/coil)
| `3.3.0` → `3.4.0` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.coil-kt.coil3:coil-network-okhttp/3.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.coil-kt.coil3:coil-network-okhttp/3.3.0/3.4.0?slim=true)
|
|
[io.coil-kt.coil3:coil-network-cache-control](https://redirect.github.com/coil-kt/coil)
| `3.3.0` → `3.4.0` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.coil-kt.coil3:coil-network-cache-control/3.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.coil-kt.coil3:coil-network-cache-control/3.3.0/3.4.0?slim=true)
|
|
[io.coil-kt.coil3:coil-compose](https://redirect.github.com/coil-kt/coil)
| `3.3.0` → `3.4.0` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.coil-kt.coil3:coil-compose/3.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.coil-kt.coil3:coil-compose/3.3.0/3.4.0?slim=true)
|
| [io.coil-kt.coil3:coil-core](https://redirect.github.com/coil-kt/coil)
| `3.3.0` → `3.4.0` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.coil-kt.coil3:coil-core/3.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.coil-kt.coil3:coil-core/3.3.0/3.4.0?slim=true)
|

---

### Release Notes

<details>
<summary>coil-kt/coil (io.coil-kt.coil3:coil-svg)</summary>

###
[`v3.4.0`](https://redirect.github.com/coil-kt/coil/blob/HEAD/CHANGELOG.md#340---Unreleased)

[Compare
Source](https://redirect.github.com/coil-kt/coil/compare/3.3.0...3.4.0)

- **New**: Add `ConcurrentRequestStrategy` to support combining
in-flight network requests for the same key.
([#&#8203;2995](https://redirect.github.com/coil-kt/coil/pull/2995),
[#&#8203;3326](https://redirect.github.com/coil-kt/coil/pull/3326))
- `DeDupeConcurrentRequestStrategy` enables this behavior and lets
waiters wait for the results of an in-flight network request.
- This behavior is experimental and is currently disabled by default.
- Currently, requests are always combined based on their `diskCacheKey`.
- `OkHttpNetworkFetcherFactory`, `KtorNetworkFetcherFactory`, and
`NetworkFetcher.Factory` now accept `concurrentRequestStrategy`.
- **New**: Decode images on JS/WASM using a web worker to avoid blocking
the browser main thread.
([#&#8203;3305](https://redirect.github.com/coil-kt/coil/pull/3305))
- **New**: Add support for Linux native targets (`linuxX64` and
`linuxArm64`) for non-Compose multiplatform artifacts.
([#&#8203;3054](https://redirect.github.com/coil-kt/coil/pull/3054))
- **New**: Add Compose-only APIs to improve transitions between
subsequent requests.
([#&#8203;3141](https://redirect.github.com/coil-kt/coil/pull/3141),
[#&#8203;3175](https://redirect.github.com/coil-kt/coil/pull/3175))
- `ImageRequest.Builder.useExistingImageAsPlaceholder` enables
crossfading from the previous image when no placeholder is set.
- `ImageRequest.Builder.preferEndFirstIntrinsicSize` lets
`CrossfadePainter` prefer the end painter's intrinsic size.
- **New**: Add `ImageLoader.Builder.repeatCount(Int)` in `coil-gif` to
set a global animated image repeat count.
([#&#8203;3143](https://redirect.github.com/coil-kt/coil/pull/3143))
- **New**: Add support for preferring embedded video thumbnails in
`coil-video`.
([#&#8203;3107](https://redirect.github.com/coil-kt/coil/pull/3107))
- **New**: Publish `coil-lint` with `coil-core` and add a lint check to
catch accidental `kotlin.error()` calls in `ImageRequest.Builder`
blocks.
([#&#8203;3304](https://redirect.github.com/coil-kt/coil/pull/3304))
- Set Kotlin language version to 2.1.
([#&#8203;3302](https://redirect.github.com/coil-kt/coil/pull/3302))
- Make `BitmapFetcher` available in common code.
([#&#8203;3286](https://redirect.github.com/coil-kt/coil/pull/3286))
- Use `applicationContext` when creating the singleton `ImageLoader` on
Android.
([#&#8203;3246](https://redirect.github.com/coil-kt/coil/pull/3246))
- Cache eligible non-2xx HTTP responses by default (e.g. `404`) and stop
caching non-cacheable responses (e.g. `500`).
([#&#8203;3137](https://redirect.github.com/coil-kt/coil/pull/3137),
[#&#8203;3139](https://redirect.github.com/coil-kt/coil/pull/3139))
- Fix potential race condition when consuming OkHttp response bodies.
([#&#8203;3186](https://redirect.github.com/coil-kt/coil/pull/3186))
- Fix `maxBitmapSize` edge case to prevent oversized bitmap crashes on
Android.
([#&#8203;3259](https://redirect.github.com/coil-kt/coil/pull/3259))
- Update Kotlin to 2.3.10.
- Update Compose to 1.9.3.
- Update Okio to 3.16.4.
- Update Skiko to 0.9.22.2.
- Update `kotlinx-io-okio` to 0.9.0.
- Update `androidx.core` to 1.16.0.
- Update `androidx.lifecycle` to 2.9.4.
- Update `androidx.exifinterface` to 1.4.2.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/damontecres/Wholphin).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMi4wIiwidXBkYXRlZEluVmVyIjoiNDMuMzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 18:31:52 -05:00
Damontecres
1b94ab9bec
Release v0.5.1 2026-02-24 16:15:25 -05:00
Damontecres
69be7311ab
Fix verify step 2026-02-24 16:15:04 -05:00
Damontecres
33cd4d04aa
Release v0.5.1 2026-02-24 16:01:52 -05:00
Ray
14483410fd
Translations 2026-02-24 (#969)
Translation updates as on 2026-02-24

Thank you to all contributors!
2026-02-24 16:00:44 -05:00
SimonHung
043f8cd3cf
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 95.3% (450 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-02-24 17:37:27 +00:00
Fjuro
3bdd177230
Translated using Weblate (Czech)
Currently translated at 100.0% (472 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/cs/
2026-02-24 17:37:27 +00:00
RafaelSoaresP
3b736a136b
Translated using Weblate (Portuguese (Brazil))
Currently translated at 81.9% (387 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt_BR/
2026-02-24 17:37:27 +00:00
SimonHung
a55399cb68
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 92.5% (437 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-02-24 17:37:27 +00:00
danpergal84
0ce2ff907c
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-02-24 17:37:27 +00:00
SimonHung
2a90d12cbc
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 91.3% (431 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-02-24 17:37:27 +00:00
danpergal84
34174cea55
Translated using Weblate (Spanish)
Currently translated at 91.9% (434 of 472 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-02-24 17:37:27 +00:00
ymir
f1c2ff4530
Translated using Weblate (French)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-02-24 17:37:27 +00:00
opakholis
ca425422be
Translated using Weblate (Indonesian)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/id/
2026-02-24 17:37:27 +00:00
Sathen
bfa0cd0b05
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/uk/
2026-02-24 17:37:27 +00:00
Fjuro
0a4f21cc11
Translated using Weblate (Czech)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/cs/
2026-02-24 17:37:27 +00:00
n8llcaster
191966124b
Translated using Weblate (Slovak)
Currently translated at 53.6% (223 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sk/
2026-02-24 17:37:27 +00:00
idezentas
e536c0a9e7
Translated using Weblate (Turkish)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-02-24 17:37:27 +00:00
danyrd92
40a3d70ba8
Translated using Weblate (Spanish)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-02-24 17:37:27 +00:00
arcker95
4ad96ea29e
Translated using Weblate (Italian)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-02-24 17:37:27 +00:00
alexkahler
6ef4356ad1
Translated using Weblate (Danish)
Currently translated at 97.1% (404 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/da/
2026-02-24 17:37:26 +00:00
idezentas
6ffc2903f3
Translated using Weblate (Turkish)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-02-24 17:37:26 +00:00
Outbreak2096
5d4219f933
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-02-24 17:37:26 +00:00
Priit Jõerüüt
89bdae9cd7
Translated using Weblate (Estonian)
Currently translated at 100.0% (416 of 416 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2026-02-24 17:37:26 +00:00
Ray
a14fdac852
A few more home page fixes (#967)
## Description
A few more home page fixes
* Focus issue between settings & preset buttons
* Fix default genre card size for "Wholphin Default" preset
* Cache genre image urls for 2 hours so that they don't change on every
refresh

### Related issues
Related to #399

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-24 12:37:21 -05:00
renovate[bot]
c4cd1fbfd3
Update actions/checkout action to v6 (#965)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | major | `v5` → `v6` |

---

### Release Notes

<details>
<summary>actions/checkout (actions/checkout)</summary>

### [`v6`](https://redirect.github.com/actions/checkout/compare/v5...v6)

[Compare
Source](https://redirect.github.com/actions/checkout/compare/v5...v6)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/damontecres/Wholphin).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNi41IiwidXBkYXRlZEluVmVyIjoiNDMuMjYuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-24 10:24:26 -05:00
Ray
7424f812d8
Dev: add CI to build app store releases (#468)
Adding GHA workflows to build the app store releases

Also cleans up gradle build script a bit
2026-02-23 22:04:08 -05:00
Ray
3e2a1869ab
Scroll to current chapter on playback overlay (#964)
## Description
This PR makes it so when you open the playback overlay and move down to
the "Chapters" row, the first focused chapter will be the current one
instead of always the first one.

### Related issues
Closes #695
Closes #951

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-23 18:52:38 -05:00
renovate[bot]
790bb4b535
Update dependency com.google.dagger.hilt.android to v2.59.2 (#937)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[com.google.dagger.hilt.android](https://redirect.github.com/google/dagger)
| `2.59.1` → `2.59.2` |
![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin/2.59.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin/2.59.1/2.59.2?slim=true)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/damontecres/Wholphin).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNi41IiwidXBkYXRlZEluVmVyIjoiNDMuMjYuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-23 18:00:53 -05:00
renovate[bot]
781fc93fa3
Update Dependencies to v2.59.2 (#936)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[com.google.dagger:hilt-android-compiler](https://redirect.github.com/google/dagger)
| `2.59.1` → `2.59.2` |
![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:hilt-android-compiler/2.59.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:hilt-android-compiler/2.59.1/2.59.2?slim=true)
|
|
[com.google.dagger:hilt-android](https://redirect.github.com/google/dagger)
| `2.59.1` → `2.59.2` |
![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:hilt-android/2.59.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:hilt-android/2.59.1/2.59.2?slim=true)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/damontecres/Wholphin).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNi41IiwidXBkYXRlZEluVmVyIjoiNDMuMjYuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-23 18:00:42 -05:00
renovate[bot]
d483ebf735
Update Gradle to v9.3.1 (#869)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gradle](https://gradle.org)
([source](https://redirect.github.com/gradle/gradle)) | minor | `9.2.1`
→ `9.3.1` |

---

### Release Notes

<details>
<summary>gradle/gradle (gradle)</summary>

###
[`v9.3.1`](https://redirect.github.com/gradle/gradle/releases/tag/v9.3.1):
9.3.1

[Compare
Source](https://redirect.github.com/gradle/gradle/compare/v9.3.0...v9.3.1)

This is a patch release for 9.3.0. We recommend using 9.3.1 instead of
9.3.0.

The following issues were resolved:

- [Cannot find testcases from Android Screenshot Test plugin since
Gradle 9.3.0](https://redirect.github.com/gradle/gradle/issues/36320)
- [Excluding dependencies from included builds doesn't work in Gradle
9.3.0](https://redirect.github.com/gradle/gradle/issues/36331)
- [ExternalDependency and DependencyConstraint cannot be passed to
DependencyResolveDetails#useTarget](https://redirect.github.com/gradle/gradle/issues/36359)
- [Gradle 9.3.0 generate JUnit test result files with wrong
name](https://redirect.github.com/gradle/gradle/issues/36379)
- [Build cache cannot handle outputs with non-BMP characters in the
filename](https://redirect.github.com/gradle/gradle/issues/36387)
- [Emojis in test names should not break build
caching](https://redirect.github.com/gradle/gradle/issues/36395)
- [Non utf-8 c code is no longer
buildable](https://redirect.github.com/gradle/gradle/issues/36399)
- [Breaking change in 9.3.0 regarding cross-project dependency
manipulation](https://redirect.github.com/gradle/gradle/issues/36428)
- [JUnit3 tests cannot be run with Gradle
9.3.0](https://redirect.github.com/gradle/gradle/issues/36451)
- [Test.setScanForTestClasses(false) causes all junit4 tests to be
skipped](https://redirect.github.com/gradle/gradle/issues/36508)

[Read the Release
Notes](https://docs.gradle.org/9.3.1/release-notes.html)

#### Upgrade instructions

Switch your build to use Gradle 9.3.1 by updating your wrapper:

```
./gradlew wrapper --gradle-version=9.3.1 && ./gradlew wrapper
```

See the Gradle [9.x upgrade
guide](https://docs.gradle.org/9.3.1/userguide/upgrading_version_9.html)
to learn about deprecations, breaking changes and other considerations
when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the [full
compatibility
notes](https://docs.gradle.org/9.3.1/userguide/compatibility.html).

#### Reporting problems

If you find a problem with this release, please file a bug on [GitHub
Issues](https://redirect.github.com/gradle/gradle/issues) adhering to
our issue guidelines.
If you're not sure you're encountering a bug, please use the
[forum](https://discuss.gradle.org/c/help-discuss).

We hope you will build happiness with Gradle, and we look forward to
your feedback via [Twitter](https://twitter.com/gradle) or on
[GitHub](https://redirect.github.com/gradle).

###
[`v9.3.0`](https://redirect.github.com/gradle/gradle/compare/v9.2.1...v9.3.0)

[Compare
Source](https://redirect.github.com/gradle/gradle/compare/v9.2.1...v9.3.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/damontecres/Wholphin).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Ny4wIiwidXBkYXRlZEluVmVyIjoiNDMuMjIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-23 18:00:31 -05:00
Ray
348a3022d6
Fix cut off cards on grids with show details enabled (#963)
## Description
Fixes the previous row of cards showing the bottom cut off when the
"Show details" view option is enabled.

### Related issues
Fixes #404
Fixes #877
Related to #882 

### Testing
Emulator

## Screenshots
![grid_show_details
Large](https://github.com/user-attachments/assets/3376275e-261e-4e5a-b874-18be7606a9bf)

## AI or LLM usage
None
2026-02-23 15:20:25 -05:00
Ray
3b162a2f98
Play theme songs for collections (#962)
## Description
Play theme songs for collections if available

### Related issues
Closes #711

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-23 13:38:02 -05:00
Damontecres
e1c66dfb1d
Fix series overview episode images 2026-02-23 12:34:46 -05:00
Ray
2a371e7d6b
Fix strings missing from translations (#959)
## Description
Weblate's Android string parser (aka
https://translate.codeberg.org/projects/wholphin/) doesn't support
direct translations of string arrays.

Many of Wholphin's preference options are defined in string arrays and
therefore could not be translated. So this PR implements the [suggested
workaround](https://docs.weblate.org/en/latest/formats/android.html) to
move the string into individual entries and reference them in arrays.

Also moves some hardcoded strings into `strings.xml` so they can be
translated. Note: virtually all error messages are still hardcoded, but
they are only for exceptional cases, so it's probably not a huge
problem.

A minor bug where the backdrop would show briefly after switching users
is fixed.

### Related issues
Fixes #957

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-23 11:17:57 -05:00
Ray
a44fad890f
Add preset for home page episode thumbnails (#954)
## Description
Adds a preset for "Episode thumbnails" which shows episodes using their
Primary image (ie a thumbnail or screenshot of the episode).

The previous "Thumbnails" preset is renamed "Series Thumbs" because it
uses the episode's Series Thumb image.

Also fixes a bug where toggling "Use series" might not update the home
page preview automatically.

### Related issues
Fixes #940

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-23 09:56:22 -05:00
Ray
a51d9e9c65
Fix clicking genre cards on home page (#953)
## Description
Fixes clicking on a genre card added to the home page

### Related issues
Fixes #952

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-22 20:18:18 -05:00
YogiBear12
e8c9b4e208
SeriesOverview Alignment (#930)
## Description
This PR changes the padding on the SeriesOverview to align it with the
updated layout on the Home, MovieDetails and SeriesDetails pages.

There is also a small change to fix an incorrect spacing on the
SeriesDetails, and start padding added to the ItemRow to bring it into
alignment with other text elements on the page and ensure consistent
spacing from the navdrawer

### Related issues
I believe this is the final PR to close out
[704](https://github.com/damontecres/Wholphin/discussions/704)

### Testing
Tested changes on both the emulator and physical tv

## Screenshots
Home screen showing the ItemRow alignment
<img width="1920" height="1080" alt="home"
src="https://github.com/user-attachments/assets/b338e2b4-2c53-45a1-b532-544263632230"
/>

SeriesOverview
<img width="1920" height="1080" alt="Screenshot_20260221_200450"
src="https://github.com/user-attachments/assets/51710ade-5155-41d9-8b89-0678c71e0c76"
/>


## AI or LLM usage
AI was used to identify the current padding and spacing values
2026-02-22 10:27:05 -05:00
Ray
cc052453a4
Add basic music video support (#948)
## Description
Just enables showing and playing music videos as if they were regular
videos. Basic metadata is shown as well.

Navigation isn't great because a music video library goes by folders
which don't necessary have the best UI choices.

### Related issues
Related to #267 

### Testing
Checked playback on the emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-02-21 15:30:16 -05:00
Cristiano Chelotti
55b148971e
Fixing Settings sticky header text overlapping with menu items (#928)
## Description
- Adding a background for the Settings stickyHeader. This helps with
visibility and prevents overlap with the menu items when scrolling.
### Related issues
In the Settings screen, the header can overlap the text of the menu
items when scrolling down. This is a minor UI bug only and does not
affect functionality at all, but the fix seemed easy and harmless so I
figured I'd give it a go.

### Testing
Tested manually on TCL model 50S434 running Android TV. Tested manually
using AVD emulation on Television (1080p) and Television (4K) preset
devices. Reproduced the problem on all 3 devices and confirmed that my
fix works across all.

## Screenshots
Before:
<img width="1920" height="1080" alt="before-settings-fix"
src="https://github.com/user-attachments/assets/15f9916d-2583-4dc4-8302-cb1f3a395b1a"
/>
After:
<img width="1920" height="1080" alt="after-settings-fix"
src="https://github.com/user-attachments/assets/3f8781aa-7063-4eb4-bf4a-95ff34b9b1a1"
/>


## AI or LLM usage
None

---------

Co-authored-by: Ray <154766448+damontecres@users.noreply.github.com>
2026-02-20 19:24:35 -05:00
Ray
7939fffd48
Override H264/AVC High 10 Profile Level 5.2 support for some devices (#935)
## Description
Several Fire TV devices natively support H264/AVC High 10 Profile Level
5.2 according to [their
specs](https://developer.amazon.com/docs/device-specs/device-specifications-fire-tv-streaming-media-player.html),
but the `MediaCodecInfo` doesn't return this support.

So this PR adds an override for the known devices that support this
which prevents unnecessary transcoding.

### Related issues
Closes #786

### Testing
Verified on a Fire TV 4k Max 2nd Gen

## Screenshots
N/A

## AI or LLM usage
None
2026-02-20 16:07:22 -05:00
Ray
4f8f69c438
Better Jellyseerr connection error handling (#933)
## Description
Show Jellyseerr connection errors in settings. If an error occurred
trying to login, in setting it will show "Server error" and clicking
gives more error info and option to remove the server.

### Related issues
Fixes #907 

### Testing
Emulator with simulated errors

## Screenshots
N/A

## AI or LLM usage
None
2026-02-20 14:29:58 -05:00
Ray
dfd9acf561
Add metadata to media session (#934)
## Description
Adds some metadata about playing media for consumption in remote control
apps such as Google Home or others.

### Related issues
Partially address #889, doesn't add explicit controls yet, but Google
Home works

### Testing
Nvidia shield + Google Home app

## Screenshots
iOS Google Home app:

![ios_google_home](https://github.com/user-attachments/assets/680ccae5-b66e-404a-a3a1-7c89991d841b)


## AI or LLM usage
None
2026-02-20 14:28:57 -05:00
Damontecres
a8ab002dd1
Release v0.5.0 2026-02-20 12:08:08 -05:00
Ray
8113369546
Update readme 2026-02-20 12:07:36 -05:00
Ray
86b50acc76
Translation 2026-02-20 (#931)
Batch of translations as of 2026-02-20

Thank you to all of the contributors!!
2026-02-20 12:03:13 -05:00
Damontecres
2b7a1ecd48
Fix linting 2026-02-20 10:50:07 -05:00