Commit graph

1407 commits

Author SHA1 Message Date
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
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
tapframe
85e1522712 Temporarily disable AVFoundation audio output 2026-06-22 19:31:21 +05:30
tapframe
7c7ab57334 Merge branch 'cmp-rewrite' into cmp 2026-06-22 19:04:48 +05:30
tapframe
6bd055d174 revert: rollback dependencies causing instablilty durign navigation and plugin fetches 2026-06-22 18:51:35 +05:30
tapframe
8498a5301d Fix mobile compile after merge 2026-06-22 18:36:56 +05:30