Commit graph

890 commits

Author SHA1 Message Date
Leon Omelan
5ab4bb712b
performance: reduce recompositons in PersonCard and SeasonCard (#1184)
<!-- By submitting this pull request, you acknowledge that you have read
the [contributing
guide](https://github.com/damontecres/Wholphin/blob/main/CONTRIBUTING.md,
including the AI/LLM policy, and [developer's
guide](https://github.com/damontecres/Wholphin/blob/main/DEVELOPMENT.md)
-->

## Description
<!-- Describe the changes in detail -->
related docs:
https://developer.android.com/develop/ui/compose/performance/bestpractices#defer-reads
Removed setting padding with animated value, instead moved to lambda
offset and layout modifiers to increase performance and reduce
recompositions when focusing those cards

Split from #1152

### Related issues
<!-- If this is a new feature or a change, there must be a discussion in
an issue first, reference the issue here -->
<!-- If fixing a bug, reference the bug issue here, or describe the bug,
including steps to reproduce -->

### Testing
<!-- Describe how this change was tested and on what device(s) -->
Tested on a emulato
## Screenshots
<!-- Please include screenshots if the PR alters any UI elements -->
|Component | Pre | Post |
|---|--------|--------|
|Person Card|<img width="404" height="366" alt="Screenshot 2026-04-02 at
08 19 18"
src="https://github.com/user-attachments/assets/73b38c75-040b-401e-88d6-4bfc9ffc0cc9"
/> | <img width="407" height="346" alt="Screenshot 2026-04-02 at 08 22
06"
src="https://github.com/user-attachments/assets/add473f7-dea6-4e33-97b8-6954149a81e2"
/> |
|Season Card| <img width="404" height="341" alt="Screenshot 2026-04-02
at 08 18 31"
src="https://github.com/user-attachments/assets/eec594ee-6701-4f99-8fb3-339ed8559ec4"
/> |<img width="408" height="299" alt="Screenshot 2026-04-02 at 08 24
06"
src="https://github.com/user-attachments/assets/8de445a6-dcb8-4c7e-a5f6-a25bf822c822"
/> |



## AI or LLM usage
<!-- If you used any AI or LLM assistance, please list where in the code
and how you tested it -->
Gemini in AS was used for repetitive code completion
2026-04-06 10:11:01 -04:00
Ray
44d1ac484f
Refactor movie page to use use state flow (#1183)
## Description
Refactors the movie page & view model to use a `StateFlow` instead of
many `LiveData` objects. This is in keeping with best practices.

There are no user facing changes.

### Related issues
None

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-04-03 12:44:59 -04:00
Ray
feb8c31791
Show toast & add option to fetch release notes when app updates (#1182)
## Description
When Wholphin is updated, it will show a short toast message. This works
for both app store and side loaded installs.

You can now click on the "Installed version" in settings to fetch the
release notes for the current version.

### Related issues
Closes #1058

### Testing
Emulator

## Screenshots
![release_notes
Large](https://github.com/user-attachments/assets/2c03eb74-abb2-4b45-8d6f-01e8ef72116c)

## AI or LLM usage
None
2026-04-03 12:44:39 -04:00
Ray
46beee00bb
Fix supported audio types (#1173)
## Description
Fixes the list of supported audio types when playing music.

This fixes allows for playback of audio formats like ALAC, PCM/WAV,
Vorbis, etc.

### Related issues
Fixes #1168 

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-04-01 01:05:24 -04:00
Ray
7ccef6f802
Fix card overlays showing, fix home page refresh indicator (#1178)
## Description
- Always show card overlays (ie Movie vs TV Show) for discover/Seerr
cards
- Show card overlays (ie favorite and watched status) for search result
cards
- Restore showing home page refresh indicator

### Related issues
Closes #1141
Closes
https://github.com/damontecres/Wholphin/issues/702#issuecomment-4114775539

### Testing
Emulator

## Screenshots
N/A, no new UIs, just adding existing ones

## AI or LLM usage
None
2026-03-31 23:45:00 -04:00
Leon Omelan
762a5e6dcc
Optimize recompositions on focus change (#1138)
<!-- By submitting this pull request, you acknowledge that you have read
the [contributing
guide](https://github.com/damontecres/Wholphin/blob/main/CONTRIBUTING.md,
including the AI/LLM policy, and [developer's
guide](https://github.com/damontecres/Wholphin/blob/main/DEVELOPMENT.md)
-->

## Description
<!-- Describe the changes in detail -->
I've look at the app using Layout inspector to see if there are any
recompositions that shouldn't be happening while navigating normally in
the app. I've noticed two issues
1. Every BannerCard was being recomposed on every cursor move, which
added a lot of overhead to home screen navigation
2. Tab row in the Series View was being recomposed while navigating
across episodes in given season.

### Related issues
<!-- If this is a new feature or a change, there must be a discussion in
an issue first, reference the issue here -->
<!-- If fixing a bug, reference the bug issue here, or describe the bug,
including steps to reproduce -->
Performance on the home screen is lacking, especially on low end
devices, while this isn't a full fix, it will improve the navigation, as
the app will be making significantly less work.

Probably will fix https://github.com/damontecres/Wholphin/issues/1043

### Testing
<!-- Describe how this change was tested and on what device(s) -->
Using Layout Inspector built-in recomposition counter and highlights
it's easy to see components which recompose while they shouldn't. I've
tested it on a 4K TV emulator on my M1 Macbook Pro

## Screenshots
<!-- Please include screenshots if the PR alters any UI elements -->
main: 
<img width="402" height="508" alt="image"
src="https://github.com/user-attachments/assets/6aaac6af-50d6-4f21-b465-e78bccf7e985"
/>

my branch:
<img width="401" height="563" alt="image"
src="https://github.com/user-attachments/assets/1034c0e2-9a40-4a05-8a07-f30b2e10301d"
/>

same navigation, on the same content. (down, right x4
## AI or LLM usage
<!-- If you used any AI or LLM assistance, please list where in the code
and how you tested it -->
Gemini built in to Android Studio helped me identify non-stable parts of
the code. It also helped me understand and implement fixes in the
HomePage code.
I've took the time to check manually that it didn't alter any behavior,
and verified the fixes using Layout Inspector and recomposition counter
2026-03-31 18:39:02 -04:00
Ray
4ea21be430
Move native builds to wholphin-extensions (#1172)
## Description
This PR moves the native components (ffmpeg decoder, av1 decoder, &
`libmpv`) to https://github.com/damontecres/wholphin-extensions. They
can be retrieved as gradle dependencies now.

This allows for contributors to more easily include these extensions
when building Wholphin locally.

There are no user facing changes in this PR.

Note: the kotlin code for interfacing with `libmpv`, ie `MPVLib` &
`MpvPlayer`, is still in this repo for now.

### Related issues
Related to #828

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-03-31 18:10:40 -04:00
Pwnisher
6f855fe4a3
Translated using Weblate (Romanian)
Currently translated at 51.3% (272 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ro/
2026-03-30 18:11:36 +00:00
Pwnisher
5158675d2b
Added translation using Weblate (Romanian) 2026-03-30 18:11:36 +00:00
gatisr
2cabc0cdba
Translated using Weblate (Latvian)
Currently translated at 37.1% (197 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/lv/
2026-03-30 18:11:36 +00:00
SimonHung
6a3b45371b
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-03-30 18:11:36 +00:00
n8llcaster
84435f713b
Translated using Weblate (Slovak)
Currently translated at 95.2% (505 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sk/
2026-03-30 18:11:36 +00:00
American_Jesus
e0309fb38b
Translated using Weblate (Portuguese)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
2026-03-30 18:11:36 +00:00
danpergal84
98e4ec0868
Translated using Weblate (Spanish)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-30 18:11:36 +00:00
Sk4hnt42
51a8777b30
Translated using Weblate (German)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:36 +00:00
flipip
9495cb4d01
Translated using Weblate (German)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:36 +00:00
zyplex
64ad27aabf
Translated using Weblate (German)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:36 +00:00
Lorixx
058aed1f53
Translated using Weblate (German)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:36 +00:00
North-DaCoder
4d510e772f
Translated using Weblate (German)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:36 +00:00
Sk4hnt42
72fd1a4cb4
Translated using Weblate (German)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:36 +00:00
alexq83
ce4408f305
Translated using Weblate (German)
Currently translated at 100.0% (530 of 530 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:36 +00:00
Outbreak2096
e70beebaa0
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (529 of 529 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-03-30 18:11:35 +00:00
North-DaCoder
4f519958ca
Translated using Weblate (German)
Currently translated at 100.0% (529 of 529 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:35 +00:00
danpergal84
8e2d4778cb
Translated using Weblate (Spanish)
Currently translated at 100.0% (529 of 529 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-30 18:11:35 +00:00
gatisr
65a9f4fdc1
Translated using Weblate (Latvian)
Currently translated at 37.3% (197 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/lv/
2026-03-30 18:11:35 +00:00
gatisr
91f864ae53
Added translation using Weblate (Latvian) 2026-03-30 18:11:35 +00:00
lednurb
fd6d52c7ba
Translated using Weblate (Dutch)
Currently translated at 74.6% (394 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
2026-03-30 18:11:35 +00:00
SimonHung
8daf914660
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (528 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-03-30 18:11:35 +00:00
North-DaCoder
ba71f3df20
Translated using Weblate (German)
Currently translated at 100.0% (528 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-03-30 18:11:35 +00:00
lednurb
52fbebb41f
Translated using Weblate (Dutch)
Currently translated at 74.4% (393 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
2026-03-30 18:11:35 +00:00
lednurb
cc8bf112c5
Translated using Weblate (Dutch)
Currently translated at 74.4% (393 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
2026-03-30 18:11:35 +00:00
idezentas
9a18750a05
Translated using Weblate (Turkish)
Currently translated at 100.0% (528 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-30 18:11:35 +00:00
Outbreak2096
a9f09888b9
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (528 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-03-30 18:11:35 +00:00
lednurb
259bb2bbf1
Translated using Weblate (Dutch)
Currently translated at 68.5% (362 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nl/
2026-03-30 18:11:35 +00:00
danpergal84
0b0b93abf7
Translated using Weblate (Spanish)
Currently translated at 100.0% (528 of 528 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-30 18:11:35 +00:00
Priit Jõerüüt
a05980a4a8
Translated using Weblate (Estonian)
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2026-03-30 18:11:35 +00:00
SimonHung
6b72746ee3
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-03-30 18:11:35 +00:00
EmadAljohani
6aba1c1561
Translated using Weblate (Arabic)
Currently translated at 28.1% (142 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ar/
2026-03-30 18:11:35 +00:00
American_Jesus
841b1bc713
Translated using Weblate (Portuguese)
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pt/
2026-03-30 18:11:35 +00:00
oyvhov
86b0228b96
Translated using Weblate (Norwegian Nynorsk)
Currently translated at 66.2% (334 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nn/
2026-03-30 18:11:35 +00:00
oyvhov
c2ee214991
Translated using Weblate (Norwegian Nynorsk)
Currently translated at 66.2% (334 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/nn/
2026-03-30 18:11:35 +00:00
ymir
666aa3432f
Translated using Weblate (French)
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-03-30 18:11:35 +00:00
danyrd92
b4f2258c5e
Translated using Weblate (Spanish)
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-03-30 18:11:35 +00:00
streamyfinchris
cff89b418a
Translated using Weblate (Swedish)
Currently translated at 75.1% (379 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sv/
2026-03-30 18:11:35 +00:00
disguisedpsycho
94ff03236b
Translated using Weblate (Hebrew)
Currently translated at 21.2% (107 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/he/
2026-03-30 18:11:34 +00:00
unclenet
3c40a98f4c
Translated using Weblate (Italian)
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-03-30 18:11:34 +00:00
Priit Jõerüüt
a6cc4b5146
Translated using Weblate (Estonian)
Currently translated at 98.0% (494 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2026-03-30 18:11:34 +00:00
opakholis
cbf8f5226f
Translated using Weblate (Indonesian)
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/id/
2026-03-30 18:11:34 +00:00
jatag41526
8549265203
Translated using Weblate (Russian)
Currently translated at 64.4% (325 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/ru/
2026-03-30 18:11:34 +00:00
idezentas
6420345e78
Translated using Weblate (Turkish)
Currently translated at 100.0% (504 of 504 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-30 18:11:34 +00:00