Commit graph

1411 commits

Author SHA1 Message Date
Nayif
a032bb5b2d
Merge pull request #1434 from foXaCe/feat/i18n-fr-pass7
i18n(fr): backfill missing translations + extract residual hardcoded strings
2026-07-01 14:35:51 +05:30
tapframe
dd0debb8b9 Use snapshot sync on mobile startup 2026-07-01 02:36:25 +05:30
tapframe
dccf264a27 Refresh series watched poster badges 2026-07-01 02:32:24 +05:30
tapframe
c17900ce0b fix: stabilize home startup and watched badges 2026-06-30 21:56:34 +05:30
tapframe
b9caec19e7 fix: reconcile watched series outside details screen 2026-06-30 20:06:33 +05:30
Stéphane
02f578a986 i18n(fr): backfill missing translations + extract residual hardcoded strings
- Backfilled 34 missing French translations (vouvoiement) for recent upstream
  features: app-store media server addons, playback engine / libmpv settings,
  donation progress, debug backend switch, terms links, original language.
- Fixed 2 residual tutoiement imperatives ("Reconstruis" -> "Reconstruisez").
- Extracted 10 hardcoded user-facing strings + 1 plural to composeResources:
  - Person detail sidebar labels (Born, Place of birth, Credits, Biography)
  - TMDB entity browse sidebar labels (Country, Type, Catalogue, About)
    + a title-count plural
  - External player subtitle overlay messages (loading / downloading)
- Key parity 1898/1898 strings, 3/3 plurals, 0 missing/orphan. Placeholders,
  vouvoiement, French typography (non-breaking spaces, Mo/Go) preserved.
2026-06-30 15:59:52 +02:00
tapframe
03bdc1a61e fix: stabilize dominant colour metadata background 2026-06-27 21:27:59 +05:30
tapframe
8a68d9e923 feat: add dominant colour bg 2026-06-27 21:01:08 +05:30
tapframe
35be889711 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-27 17:12:49 +05:30
tapframe
e4c84e0060 Add Bulgarian localization 2026-06-27 17:12:08 +05:30
tapframe
61c9096b8b Add Slovak localization 2026-06-27 17:07:19 +05:30
tapframe
a7dc224098 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-27 17:03:22 +05:30
Nayif
07a35ddbbb
Merge pull request #1030 from emgeje/cmp-rewrite
Add Hungarian translation
2026-06-27 17:03:11 +05:30
Nayif
e8b1449cb5
Merge pull request #1412 from WhiteGiso/pr/translations-it
Add Italian translations for Mobile
2026-06-27 17:01:21 +05:30
tapframe
d5d342cc2e ref: move external player button to top controls 2026-06-27 17:00:48 +05:30
tapframe
0d9efc4975 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-27 17:00:15 +05:30
Nayif
d7409923d7
Merge pull request #1422 from materemias/fix/debrid-device-auth-transient-poll
Fix debrid device-auth giving up on transient poll errors (#1409)
2026-06-27 17:00:07 +05:30
tapframe
8a1efa2551 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-27 16:46:34 +05:30
tapframe
4aa29087df Fix mobile home catalog cache invalidation 2026-06-27 16:19:17 +05:30
tapframe
f2eddbaf5b ref: add validation for duplicate collection 2026-06-27 15:17:44 +05:30
YLaskco
c388bd45d2 fix(player): preserve stream loading during external prep 2026-06-26 18:54:46 -04:00
tapframe
23480f50b6 fix: tune streams blur panel 2026-06-27 02:54:18 +05:30
YLaskco
7efdf52748 fix(player): speed up skip-segment launch prep 2026-06-26 15:13:33 -04:00
tapframe
5c5276fd7a Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-26 23:41:06 +05:30
tapframe
749917bcd7 fix: source change not recreating playback
fixes #1421
2026-06-26 23:40:21 +05:30
Nayif
ade6935330
Merge pull request #1420 from Laskco/skip-intro-merge-providers
fix(player): merge skip-intro providers instead of first-match-wins
2026-06-26 23:08:44 +05:30
Nayif
468a87ad61
Merge pull request #1418 from Joe00011/feat/japanese-translation
Update Japanese translation
2026-06-26 23:08:07 +05:30
Nayif
3395abde5e
Merge pull request #1415 from Laskco/external-player-skip-segments
Send resolved intro/outro skip segments to external players
2026-06-26 23:07:51 +05:30
tapframe
d6a0d2da52 ref: rename files 2026-06-26 22:53:12 +05:30
tapframe
1b4d08bbba feat: support for 6 profiles 2026-06-26 15:01:34 +05:30
Mate Remias
27c646eafa
Fix debrid device-auth giving up on transient poll errors
The device-authorization poll for debrid providers (TorBox/Premiumize)
treated any thrown redeem request as a fatal error and stopped polling,
showing "Could not start sign-in". The only thrown error it tolerated was
iOS request cancellation (isCancelledHttpRequest matched NSURLErrorDomain
/ code=-999); on Android a thrown request fell through to Failed(null)
and terminated the loop.

On aggressive ROMs (OxygenOS, MIUI, ...) the OS severs a backgrounded
app's sockets and fails its DNS while the user is in the browser approving
the code, so the in-flight poll throws UnknownHostException/IOException.
That terminated the login even though approval succeeded — reproduced on
OnePlus 13 / Android 16 (issue #1409): browser shows "logged in", app shows
"Could not start sign-in".

Treat a thrown redeem as Pending and keep polling instead of failing. To
avoid polling forever when the failure is persistent (airplane mode,
captive portal) rather than a brief background blip, a monotonic-clock
watchdog (DEVICE_AUTH_MAX_POLL_DURATION) bounds the throwing path and
surfaces failure once it elapses; a response-bearing expiry still stops
the loop earlier via the Expired branch. This also removes the now-unused,
iOS-only isCancelledHttpRequest helper.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:46:07 +02:00
YLaskco
cff97e3159 Skip Intro: merge providers instead of first-match-wins
SkipIntroRepository returned the result of the first provider that had
any data, so a provider with only a partial result (e.g. AniSkip with
just the intro) shadowed another provider that had the complete set
(e.g. IntroDB with intro + outro), silently dropping the outro.

Query IntroDB, Anime-Skip and AniSkip and merge their results by segment
category (opening / ending / recap), filling each category from the
highest-priority provider that has it (IntroDB, then Anime-Skip, then
AniSkip). The most complete set is always used and no provider shadows
another in either direction. The skipIntroEnabled gate and caching are
unchanged.
2026-06-26 01:46:18 -04:00
Joe00011
1ab467e810
Update Japanese strings.xml translation 2026-06-26 13:30:44 +09:00
YLaskco
0bfd611a45 Resolve skip segments on an app-lifetime scope
The skip lookup ran on the caller's composition-bound coroutine scope,
so navigating into the external player cancelled the in-flight network
request before it returned (and the cancelled lookup cached an empty
result, poisoning retries). Run resolution on a dedicated app scope so
it completes regardless of UI lifecycle.
2026-06-25 15:23:14 -04:00
YLaskco
af2e8ff926 Send resolved intro/outro skip segments to external players
Adds an opt-in External Player setting that hands resolved intro and
outro skip timestamps to external players via a skip_segments intent
extra, so a supporting player can auto-skip the opening and ending the
same way the internal player already does.

Resolution reuses the existing SkipIntroRepository (IntroDB, ARM,
AniSkip, Anime-Skip), so there is no new API, key, provider, or
dependency. The toggle is off by default and sits under Forward
Subtitles in the External Player settings. Resolution is bounded by a
timeout and only runs when the setting is on; players that do not read
the extra ignore it.
2026-06-25 14:38:45 -04:00
WhiteGiso
6e27baacda Add Italian translations for Mobile 2026-06-25 16:56:08 +02:00
tapframe
19f1e1a656 Remove settings sidebar border 2026-06-25 11:38:35 +05:30
tapframe
b9c3e62eb0 ref: adjust authscreen layout and gradients 2026-06-25 02:46:53 +05:30
tapframe
a2d3fda686 ref: reorganize settings page 2026-06-25 01:45:50 +05:30
tapframe
d767f60d35 Apply profile mesh background to loading screens 2026-06-25 01:04:17 +05:30
tapframe
87670e7cb0 ref: remove startup observer causing stale catalog setting push 2026-06-24 20:40:55 +05:30
tapframe
9d32d238f4 fix: libmpv ass override.
fixes #1403
2026-06-24 19:55:30 +05:30
tapframe
df8b05f1c2 Adjust App Store settings policy and copy 2026-06-24 13:22:53 +05:30
tapframe
69f0dab65e feat: local db switch for development 2026-06-23 19:43:27 +05:30
tapframe
3c1bdd3e18 update proguard rules and bump version 2026-06-22 21:12:43 +05:30
tapframe
6e815b91ed feat: libmpv engine for android 2026-06-22 20:43:12 +05:30
Nayif
f3128f369b
Merge pull request #1370 from VenusIsJaded/fix/android-7-lets-encrypt
fix: Let's Encrypt trust on Android 7
2026-06-22 19:53:26 +05:30
tapframe
f0f5e583a3 Fix home collections refresh
Fixes #1368
2026-06-22 19:43:22 +05:30
tapframe
e2215b64a4 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-22 19:34:58 +05:30
Nayif
7f9cb51981
Merge pull request #1391 from VenusIsJaded/fix/imdb-rating-shows-tmdb-score
Fix: Keep addon IMDb rating instead of TMDB score
2026-06-22 19:34:51 +05:30