Commit graph

1760 commits

Author SHA1 Message Date
Cursor Agent
0342070fe7
Sync Greek translations with upstream and fix remaining corruption
- Add 31 missing settings_card_depth_* strings from upstream Card Depth Effect feature
- Fix remaining mixed Greek/English corruption artifacts (Όχι/no, partial word swaps)
- Translate newly surfaced untranslated strings in continue watching, debrid, trakt, and cloud library areas
- Bring values-el/strings.xml to full parity with the 1958-key English base

Co-authored-by: Nasos V. <nvasedis@gmail.com>
2026-07-14 06:56:05 +00:00
Nasos V.
d52ef9d4c5
Merge branch 'cmp-rewrite' into fix-greek-translations 2026-07-14 09:41:38 +03:00
Trần Khánh
f63b38dbcf Merge remote-tracking branch 'upstream/cmp-rewrite' into cmp-rewrite 2026-07-14 12:17:39 +07:00
Trần Khánh
a901abf914 Update strings.xml 2026-07-14 12:10:34 +07:00
tapframe
b3be03fb7f Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-14 01:31:36 +05:30
darkflame91
4db3231c2a fix(android): fix issues with PiP window 2026-07-14 01:28:11 +05:30
tapframe
b2973df144 Match Trakt CW with TV 2026-07-14 01:25:30 +05:30
tapframe
d9f3ac818c fix: cw enrichment retry and up next logic 2026-07-13 21:30:13 +05:30
Trần Khánh
fbc8e9534c Merge branch 'cmp-rewrite' of https://github.com/khanh71/NuvioMobile into cmp-rewrite 2026-07-13 18:51:56 +07:00
Luqman Fadlli
7c7dfbdf64 feat(android): add Now Playing media controls
Add Android Now Playing support using Media3 MediaSession and media notifications.

* Publish title, subtitle, artwork, duration, position, and playback state
* Add play, pause, seek, rewind, and fast-forward controls
* Support lock screen, notification, headset, and external media controls
* Integrate with both ExoPlayer and libmpv backends
* Keep playback active in the background while the media session is running
* Clean up the media session, notification, and foreground service when playback ends
2026-07-13 15:44:51 +07:00
Trần Khánh
800c9aa1c7 Update strings.xml 2026-07-13 15:15:05 +07:00
Trần Khánh
07148b0b76 Update strings.xml 2026-07-13 07:50:13 +07:00
i4mth3d4ng3r
c0b44c6a33 Update upstream for Parental Guidance api 2026-07-12 16:08:58 -05:00
Trần Khánh
bc4795dfbc Update strings.xml 2026-07-12 22:48:21 +07:00
tapframe
fc87a44adc revert: restore previous empty state UI 2026-07-12 19:36:11 +05:30
tapframe
e25e12df09 fix: prevent settings sync reset regression 2026-07-12 19:30:31 +05:30
Trần Khánh
33d37748c4 Update strings.xml 2026-07-12 19:04:57 +07:00
Trần Khánh
7574a2ce09 Update strings.xml 2026-07-12 11:39:18 +07:00
Trần Khánh
9a3e2a0047 Update strings.xml 2026-07-12 07:27:19 +07:00
WhiteGiso
10e42a971e Update Italian translations 2026-07-12 01:16:22 +02:00
tapframe
d9954c04e8 Refine store copy and empty states 2026-07-12 02:14:35 +05:30
nosvasedis
6de2b2b882 Merge upstream/cmp-rewrite, resolve Greek translation conflicts
- Resolved conflicts by keeping corrected Greek translations over old broken/English text
- Fixed additional corrupted strings introduced upstream (mixed Greek/English fragments) for Trakt rate-limit/request-failed messages, network error messages, and download body messages
- Added missing Greek translations for new upstream keys (settings_playback_parental_guide, settings_playback_parental_guide_description)
- Translated remaining untranslated item-count strings

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-11 21:10:18 +03:00
tapframe
a90ee2fcfb feat: add card depth customization 2026-07-11 12:11:25 +05:30
tapframe
f19d3d1a08 bump version 2026-07-11 09:54:45 +05:30
Nayif
e0c5e31c79
Merge pull request #1257 from siriusvoid/feat/hide-parental-guide-overlay
feat: add "Content Warnings" toggle from tv version
2026-07-11 09:43:12 +05:30
Nayif
cc381eb186
Merge pull request #1429 from khanh71/cmp-rewrite
Add Vietnamese language support for Nuvio Mobile
2026-07-11 09:42:37 +05:30
Nayif
1b76778a6e
Merge pull request #1448 from milicevicivan18/cmp-rewrite
Minor Display section spacing fix
2026-07-11 09:42:19 +05:30
Nayif
bf5fb7830b
Merge pull request #1490 from v4n00/romanian-translation
Add Romanian translation
2026-07-11 09:41:06 +05:30
Nayif
5981d2d724
Merge pull request #1493 from mronion212/dutch-translation
Dutch translation
2026-07-11 09:40:52 +05:30
tapframe
de4e269879 fix: restore unaired next up episodes 2026-07-11 09:09:09 +05:30
tapframe
0112e33897 fix: LibraryLocalState for profile management 2026-07-11 08:58:24 +05:30
Kyle
36f50fa4a5 feat(details): support behaviorHints.defaultVideoId for series initial play
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 14:13:44 -06:00
tapframe
2e1af6ea1a feat: add zoom overlay 2026-07-10 21:08:10 +05:30
tapframe
a1c1f8b82a fix native profile switcher 2026-07-10 19:21:06 +05:30
tapframe
802a31fdf9 fix(ios): restore Compose tablet settings 2026-07-10 17:01:54 +05:30
tapframe
d8b3370faa fix(ios): prevent carousel swipe-back 2026-07-10 16:28:09 +05:30
tapframe
070ef29ede fix(ios): stabilize stream navigation and header insets 2026-07-10 15:40:41 +05:30
tapframe
5789af84aa feat: migrate navigation to Nav3 and native iOS 2026-07-10 14:58:49 +05:30
tapframe
6d5281cdd2 fix: sync watch progress source 2026-07-10 01:21:55 +05:30
tapframe
d085bf8f7d Revert "perf: reduce compose recomposition hotspots"
This reverts commit 62d4297063.
2026-07-09 23:20:23 +05:30
tapframe
fc38e5fa86 fix: preserve home catalog sync keys 2026-07-09 21:40:37 +05:30
tapframe
b5f37e227d fix: stream continue watching metadata enrichment 2026-07-09 20:41:48 +05:30
tapframe
ebffbb4ebd fix(trakt): preserve continue watching sync 2026-07-09 20:28:01 +05:30
tapframe
2309970f20 fix: keep home tab mounted 2026-07-09 19:05:05 +05:30
tapframe
62d4297063 perf: reduce compose recomposition hotspots 2026-07-09 17:29:10 +05:30
tapframe
fb805b738b fix ios player rotation via patched libmpv 2026-07-09 11:59:11 +05:30
Jimmy
69b164f702 add dutch language to enums
added dutch language values so it can be used in the app
2026-07-09 00:04:52 +02:00
Jimmy
66c247aa8c add Dutch translation
Added values-nl for dutch app language
2026-07-08 23:54:26 +02:00
v4n
41cfd1bbcf
chore: add romanian language to enums 2026-07-08 22:27:01 +03:00
v4n
9bb53b8e02
i18n(ro): add romanian translation 2026-07-08 21:58:05 +03:00
tapframe
4639529c3a Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-08 23:40:07 +05:30
Nayif
dfc8accab1
Merge pull request #1480 from foXaCe/feat/i18n-fr-pass8
i18n(fr): backfill 26 missing translations + extract residual hardcoded string
2026-07-08 23:39:39 +05:30
tapframe
4fcf4fb542 add back periodic refresh 2026-07-08 21:02:38 +05:30
tapframe
3a61117041 feat: adding deeplinks for addons and detailscreen 2026-07-08 13:37:03 +05:30
Stéphane
6bc4815945 i18n(fr): backfill missing translations + extract residual hardcoded string
- Add 26 missing French (values-fr) translations for upstream-added strings
  (Sentry crash reports, downloads open-directory, metadata Background Mode)
- Replace hardcoded contentDescription = "Play" in iOS player with the
  existing action_play string resource
- Restores EN<->FR parity to 1921<->1921
2026-07-07 10:17:04 +02:00
tapframe
deddcc6744 Use TV Lottie loading spinner 2026-07-06 14:50:51 +05:30
Copilot
0afa968eb3 Fix and complete Greek (el) translations
- Translate 18 strings that were missing from the Greek locale entirely (Sentry crash report dialogs, downloads folder actions).
- Fix ~257 strings that were corrupted by a bad find/replace pass, which left garbled mixed Greek/English text (e.g. Αποθήκευσηd, ΑναπαραγωγήER, Όχιt available).
- Translate ~275 additional strings that were left in English (mainly the Collections/TMDB editor, plugin manager, and debrid settings screens).
- Keep brand names, codec/technical identifiers, and pure format strings in English as is conventional.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-06 01:09:00 +03:00
tapframe
9d41e9f769 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-06 02:44:13 +05:30
tapframe
cafb21dbe8 fix: keep home hero clear of continue watching 2026-07-06 02:44:06 +05:30
tapframe
aeb5e04321 fix: show donation progress percent 2026-07-06 02:29:12 +05:30
tapframe
0f7e9615e4 fix: open externalUrl streams externally 2026-07-06 02:17:47 +05:30
Nayif
150b0b2ba0
Merge pull request #1443 from emgeje/cmp-rewrite
Updated Hungarian translations in strings.xml
2026-07-06 02:04:02 +05:30
Nayif
a002dec6ed
Merge pull request #1426 from WhiteGiso/pr/additional-translations-ita
Add additional ita translations
2026-07-06 01:59:49 +05:30
Nayif
79cc4b4d17
Merge pull request #1457 from WhiteGiso/feat/ios-now-playing
Add iOS Now Playing integration
2026-07-06 01:59:03 +05:30
Nayif
848fc962ae
Merge pull request #1453 from nosvasedis/nosvasedis-upgraded-robot
Add Greek translations for 854 missing UI strings
2026-07-06 01:58:44 +05:30
tapframe
f3f120a57d Sync Trakt credentials across clients 2026-07-06 01:36:32 +05:30
tapframe
4b6a15c950 Fix Trakt progress watched precedence 2026-07-06 00:59:53 +05:30
tapframe
94e1141bd1 fix: ignore unavailable episodes in watched state 2026-07-06 00:34:37 +05:30
tapframe
8c6741f5cb feat(trakt): add pagination support for fetching watched movies 2026-07-05 19:09:28 +05:30
tapframe
7191e91dd6 feat(PlaybackAutoPlaySettings): add additional hours 2026-07-04 15:43:44 +05:30
tapframe
b3c96bd7b3 feat: sentry diagnostics 2026-07-04 14:29:45 +05:30
tapframe
0e78513031 feat: implement open downloads directory for Android and iOS 2026-07-04 00:57:17 +05:30
WhiteGiso
43b5a42fb2 feat(ios): add Now Playing support 2026-07-03 14:52:47 +02:00
nosvasedis
cb6fbe4a9e Add Greek translations for 854 missing UI strings
Complete Greek (el) localization by translating all previously untranslated strings in values-el/strings.xml.

Changes:
- Added 854 Greek translations for UI strings
- Achieved 100% translation coverage (1903/1903 strings)
- Maintained format placeholders (%1\, %2\, etc.)
- Preserved existing Greek translations and terminology
- Ensured consistency with app UI context

Coverage before: ~50% (1049/1903 strings)
Coverage after: 100% (1903/1903 strings)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-03 12:43:05 +03:00
tapframe
caad155308 ref: fine tuning grains 2026-07-03 01:47:32 +05:30
tapframe
e6ef2fd3ae feat: adjust library and cw cards removal animations 2026-07-03 01:40:48 +05:30
tapframe
173584b191 Ignore self-originated realtime sync events 2026-07-02 18:42:44 +05:30
tapframe
dccbfc43c2 Add realtime sync invalidation handling 2026-07-02 18:31:43 +05:30
Ivek
3818429b39
Update StreamsSettingsPage.kt 2026-07-02 00:09:43 +02:00
Ivan
e2a6436da2
Fixed mistake 2026-07-01 23:20:42 +02:00
Ivan
a4b6ef597c
Fix Display section spacing in Stream Settings 2026-07-01 23:17:26 +02:00
emgeje
c6e3b343c8
Updated various strings in Hungarian localization 2026-07-01 17:38:01 +02:00
emgeje
7e081edfda
To ensure the Hungarian localization remains accurate and up-to-date with the latest application string changes. 2026-07-01 17:25:23 +02:00
tapframe
6ed61edef0 Refactor runtime configuration 2026-07-01 20:37:26 +05:30
tapframe
bc7c79f7f7 Revert "Merge branch 'switchdb' into cmp-rewrite"
This reverts commit e883d89031, reversing
changes made to 6885bbdee7.
2026-07-01 20:34:49 +05:30
tapframe
3ca3953fe3 Fix Android dominant color extraction 2026-07-01 15:35:15 +05:30
tapframe
ef9aece790 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-01 14:37:52 +05:30
Nayif
2880cbb507
Merge pull request #1432 from IberianSoldierPC/cmp-rewrite
spanish translation reinforced and updated
2026-07-01 14:36:42 +05:30
Nayif
4d95e3ab22
Merge pull request #1433 from Pupon11/cmp-rewrite
Update strings.xml  Updated Czech translations
2026-07-01 14:36:08 +05:30
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
7dd20c9915 bump version 2026-07-01 14:33:53 +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
Pupon11
d033eb6e46
Update strings.xml
Updated Czech translations
2026-06-30 13:46:02 +02:00
IberianSoldierPC
3e0d04b56a spanish translation reinforced and updated 2026-06-29 12:21:42 +02:00
Trần Khánh
7f13b201e8 Add Vietnamese language support
Add Vietnamese (vi) as an available language option with complete string translations. Updates include Android locale configuration, comprehensive Vietnamese translation file with 1927 strings, and AppLanguage enum to support Vietnamese selection in the app settings.
2026-06-29 11:32:53 +07:00
WhiteGiso
6916b0091f Add additional ita translations 2026-06-28 02:03:37 +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
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
tapframe
4935ffc75a Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-22 18:19:28 +05:30
Nayif
bff4fa798d
Merge pull request #1141 from jhojhocraazy/cmp-rewrite
i18n(pt-BR): Add complete Brazilian Portuguese
2026-06-22 18:18:42 +05:30
Nayif
d7eea90691
Merge pull request #1386 from Joe00011/feat/japanese-translation
feat: Add Japanese language support
2026-06-22 18:16:40 +05:30
Nayif
1441797d3e
Merge pull request #1259 from WhiteGiso/pr/liquid-glass-profile-switch
feat(ios): improve liquid glass profile switching
2026-06-22 18:15:52 +05:30
VenusIsJaded
0bfd086917 fix: ExoPlayer unpausing when leaving the app and coming back
The LifecycleEventObserver was only capturing playWhenReady at the
time the effect ran. When ON_START fired later, it would use the old
value and resume playback even if the user had paused before leaving
the app.

Use rememberUpdatedState so we always read the live value.

Fixes #1080
2026-06-22 07:16:03 -05:00
VenusIsJaded
fca06204e0 fix(details): keep addon IMDb rating instead of TMDB score
When a metadata addon (e.g. aiometadata) supplies a genuine IMDb rating,
the TMDB enrichment on the details page was overwriting it with TMDB's
vote_average because the copy() preferred enrichment.rating over the
existing value. This made the IMDb placeholder display the TMDB score on
mobile, even though the addon provided IMDb ratings (the TV version was
already correct).

Invert the precedence so the addon-provided imdbRating is kept and TMDB's
vote_average is only used as a fallback when no rating was supplied.

Fixes #1377
2026-06-22 06:37:24 -05:00
VenusIsJaded
cc89e07eed fix: Let's Encrypt trust on Android 7 2026-06-22 05:38:31 -05:00
tapframe
389b990358 Handle deleted remote accounts on mobile
Fixes #81
2026-06-21 23:50:01 +05:30
Joe00011
029abadbe6
Add Japanese strings.xml translation 2026-06-21 20:30:48 +09:00
tapframe
e1cad830e9 Fix watch progress crash from concurrent updates 2026-06-21 16:51:20 +05:30
tapframe
3e49c78de7 fix: multiple ios crashes 2026-06-21 16:45:56 +05:30
tapframe
f2ef1e1383 refactor(plugin): unify dispatcher usage in PluginRuntime 2026-06-21 16:37:59 +05:30
tapframe
50a923d056 ref: remove entity outer box 2026-06-21 13:10:09 +05:30
tapframe
bdffcbb8bf Refine wide cast loading layout 2026-06-21 13:06:14 +05:30
tapframe
f4a2ce8963 Add wide cast and production layouts 2026-06-21 12:57:29 +05:30
Joe00011
f5b32acd42
Add Japanese language support to AppLanguage enum 2026-06-21 15:51:28 +09:00
Joe00011
cb8072b470
Add Japanese locale to locale_config.xml 2026-06-21 15:44:55 +09:00
tapframe
6c9b926b0e bump version 2026-06-20 22:23:13 +05:30
tapframe
41b732bbe5 fix(plugin): isolate runtime from default dispatcher 2026-06-20 22:16:43 +05:30
tapframe
997f071c8c bump version 2026-06-20 19:42:32 +05:30
tapframe
c3da1cf36f Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-20 19:15:50 +05:30
Nayif
f6ce3f63d4
Merge pull request #1364 from skoruppa/cmp-rewrite
original audio parity with TV and fix for debrid instant download + Polish Translation Update
2026-06-20 18:16:18 +05:30
tapframe
3525673e70 Soften detail hero bottom gradient 2026-06-20 17:44:48 +05:30
tapframe
3fcf1aa752 Fix local continue watching removal with Trakt progress 2026-06-20 16:23:21 +05:30
tapframe
18305062a1 fix: adjust buffer duration 2026-06-20 15:41:18 +05:30
skoruppa
d52491d0b8 Merge remote-tracking branch 'upstream/cmp-rewrite' into cmp-rewrite
# Conflicts:
#	composeApp/src/commonMain/kotlin/com/nuvio/app/App.kt
2026-06-19 21:54:07 +02:00
paregi12
4c667e402f
Merge branch 'NuvioMedia:cmp-rewrite' into cmp 2026-06-19 19:46:08 +05:30
tapframe
3adee555c5 feat: add torrent not supported message 2026-06-19 17:09:30 +05:30
tapframe
6a57e59bfe refactor: update Coil dependencies to exclude skiko module 2026-06-19 16:29:25 +05:30
tapframe
963ace0211 update dependencies. 2026-06-19 16:18:32 +05:30
paregi12
adf5d18462 fix(plugins): map plugin subtitles to StreamItem.externalSubtitles 2026-06-19 10:00:39 +05:30
paregi12
5fd0ab6ea2 fix(streams): resolve redeclaration and unresolved reference build errors 2026-06-19 08:57:41 +05:30
paregi12
fadf8e2831 Merge remote-tracking branch 'upstream/cmp-rewrite' into cmp
# Conflicts:
#	composeApp/src/commonMain/kotlin/com/nuvio/app/App.kt
2026-06-19 08:34:04 +05:30
Nayif
264df05335
Merge pull request #1367 from foXaCe/feat/i18n-fr-vouvoiement
i18n(fr): convert French translations from tutoiement to vouvoiement
2026-06-19 01:46:24 +05:30
Stéphane
654e951259 i18n(fr): convert French translations from tutoiement to vouvoiement
- Rewrote all user-facing French strings from informal address (tu/ton/ta/
  tes, 2nd-person-singular imperatives) to formal vouvoiement (vous/votre/
  vos, 2nd-person-plural imperatives). 171 strings updated.
- Past participles and adjectives kept singular (politeness "vous"):
  "Vous avez ete deconnecte", "Vous etes seul responsable".
- Setting behavior descriptions written in 3rd person ("Affiche les
  badges...") left unchanged: they describe the option, not the user.
- Key parity unchanged, placeholders (%1$s, \n), HTML entities and French
  typography (apostrophes ', non-breaking spaces) preserved.
2026-06-18 21:38:18 +02:00
tapframe
aa2a074578 Fix profile-scoped playback sync leaks 2026-06-19 00:05:14 +05:30
WhiteGiso
18d004ffe0 Add native liquid glass profile tab handling 2026-06-18 15:57:31 +02:00
skoruppa
a764046e29
Merge branch 'NuvioMedia:cmp-rewrite' into cmp-rewrite 2026-06-18 14:48:06 +02:00
skoruppa
311da87592 feat: add Original Audio language option with TMDB enrichment
- Add AudioLanguageOption.ORIGINAL to preferred audio language picker
  (primary and secondary) with hint 'Requires TMDB enrichment'
- Resolve content original language from meta.language with fallback
  to country-based inference (countryToLanguageCode mapping)
- Pass contentLanguage through PlayerLaunch, PlayerScreen, and
  StreamLinkCache for reuse on subsequent playback sessions
- Add Device Language as default app language option (resets to system
  locale instead of forcing English)
- Add all missing Polish translations (417 strings)
- Add LanguageSelectionOption.description support in settings dialogs
2026-06-18 14:46:31 +02:00
tapframe
4a013678f8 fix: update donations api 2026-06-18 17:46:34 +05:30
skoruppa
8039c32a70 fix: resolve debrid instant streams before download/copy link
Long-press menu was blocked for debrid instant streams because
playableDirectUrl is null until resolved. Now the menu opens for
any stream that has a direct URL or is a debrid candidate.

Download and Copy Link actions now resolve the debrid stream URL
via DirectDebridPlaybackResolver before enqueuing/copying, matching
the same flow used by the player.
2026-06-18 13:54:59 +02:00
tapframe
20620dc400 Fix mobile continue watching backfill 2026-06-18 17:14:54 +05:30
paregi12
e3bea52462
Merge branch 'NuvioMedia:cmp-rewrite' into cmp 2026-06-18 16:40:57 +05:30
tapframe
938f871a91 Fix iOS player engine volume overrides 2026-06-18 16:22:55 +05:30
tapframe
78d4ebf229 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-18 16:12:37 +05:30
Nayif
2573d0d0e6
Merge pull request #1340 from anikettuli/fix/subtitle-addon-tv-series-alias
fix(player): apply tv/series alias and singular resource name in subtitle addon matching
2026-06-18 16:08:00 +05:30
tapframe
0645f3504e Align next up copy with TV app 2026-06-18 15:39:24 +05:30
Nayif
2b885d7001
Merge pull request #1278 from luqmanfadlli/fix-ios-popup-trailer
fix(trailer): resolve iOS popup dimensions and polyfill native playback controls
2026-06-18 15:06:30 +05:30
Nayif
c802d8b0c6
Merge pull request #1348 from Blackspirits/patch-2
Change 'Avançado' to 'Avançadas' in strings.xml
2026-06-18 15:04:57 +05:30
Nayif
cb48f1850c
Merge pull request #1360 from danielz1z/fix/catalogroute-targetkind-navtype
fix(ios): serialize catalog route target kind
2026-06-18 15:04:43 +05:30
tapframe
232703c3cd Read sync backend credentials from env 2026-06-18 14:14:55 +05:30
daniel
a65fd5dc88 fix(ios): serialize catalog route target kind
Store CatalogRoute.targetKind as CatalogTargetKind.name and convert it back in toCatalogTarget(). This keeps the typed route argument on a primitive String boundary so Compose Navigation does not require a custom enum NavType during graph construction.
2026-06-18 06:33:51 +02:00
tapframe
4a883a1add Add runtime sync backend switch 2026-06-17 23:29:00 +05:30
Luqman Fadlli
efe032d87f
Merge branch 'NuvioMedia:cmp-rewrite' into fix-ios-popup-trailer 2026-06-17 15:56:07 +07:00
Aniket Tuli
250d9d79cf fix(cloud): guarantee an error message for failed Torbox responses
The failure path now falls back to a message carrying the HTTP status
when the body has no detail/error and the raw body is blank, and the
large mylist fixture moves to TorboxCloudLibraryFixtures.kt so the
test file stays scannable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-17 00:13:47 -07:00
Aniket Tuli
7fa0c5fab7 fix: stop truncating raw HTTP bodies on Android so Torbox cloud library loads
Android httpRequestRaw capped response bodies at 1 MiB and appended a
truncation marker, corrupting large Torbox mylist JSON. The decode error
was swallowed, so the cloud library rendered as silently empty. Read the
full body like iOS/desktop already do, and surface undecodable Torbox
list responses as a provider error instead of an empty library.

Fixes #1216

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-17 00:13:46 -07:00
Aniket Tuli
31420a88bf fix(player): clamp skip-outro seek below the duration boundary 2026-06-17 00:13:40 -07:00
Aniket Tuli
3236a7cc1b fix(player): clamp skip-outro seekTo against actual duration
Prevents a Long overflow when the last AnimSkip segment carries Double.MAX_VALUE as its endTime sentinel. The seek target is now capped to playbackSnapshot.durationMs so ExoPlayer always receives a valid millisecond position.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 00:13:39 -07:00
Aniket Tuli
1b7c9d6481 fix: apply tv/series alias and singular resource name to subtitle addon matching
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 00:13:36 -07:00
paregi12
baaf8f9a8b Merge upstream/cmp-rewrite into cmp 2026-06-15 20:22:32 +05:30
WhiteGiso
53d600768f
Merge branch 'cmp-rewrite' into pr/liquid-glass-profile-switch 2026-06-15 10:09:40 +02:00
tapframe
6885bbdee7 update ProGuard rules 2026-06-15 01:16:49 +05:30
tapframe
521ba187f4 bump version 2026-06-15 00:29:47 +05:30
BlackSpirits
4e46079390
Change 'Avançado' to 'Avançadas' in strings.xml 2026-06-14 20:53:50 +02:00
Nayif
aaa3ab9f64
Merge pull request #1322 from foXaCe/feat/extract-hardcoded-strings-pass6
i18n(fr): full FR parity + extract residual hardcoded strings (pass 6)
2026-06-15 00:02:56 +05:30
Nayif
f5a675d864
Merge pull request #1336 from halibiram/fix/hls-playback-unrecognized-format
fix(player): resolve unrecognized input format during HLS stream playback
2026-06-15 00:01:50 +05:30
Nayif
f06650b89f
Merge pull request #1345 from halibiram/fix/jni-local-ref-overflow
build: update quickjs-kt library AAR with JNI optimizations and leak …
2026-06-15 00:01:23 +05:30
BlackSpirits
2dd48d5393
fix(l10n): update Portuguese (Portugal) mobile strings 2026-06-14 17:30:50 +02:00
tapframe
2461ebf594 Fix collection catalog show more routing 2026-06-14 20:56:21 +05:30
tapframe
1a2eca2341 Share stream source pipeline and cards 2026-06-14 19:43:30 +05:30
tapframe
485e4e81e9 Remove stream warmup dead code 2026-06-14 18:58:37 +05:30
halibiram
94e3cf8acd build: update quickjs-kt library AAR with JNI optimizations and leak fixes 2026-06-14 13:19:41 +03:00
halibiram
b694fb3e72 fix(player): resolve unrecognized input format during HLS stream playback 2026-06-13 19:39:54 +03:00
tapframe
6188f700d6 Fix catalog pagination 2026-06-13 19:52:42 +05:30
Stéphane
75f9b46818 i18n(fr): full FR parity + extract residual hardcoded strings (pass 6)
Rebased on current cmp-rewrite, then reconciled and extended.

- Restored full EN<->FR parity: 1854/1854, 0 missing/orphan/duplicate keys.
- Reconciled post-rebase drift from the desktopweb revert: removed 5 FR
  orphans (desktop navigation, about version format) and the now-dead
  desktop P2P string + localizedP2pNotAvailableDesktop() helper whose call
  site was deleted upstream; added the 2 new touch-gestures translations.
- Extracted 11 residual hardcoded user-facing strings via stringResource and
  the LocalizedUiText.resourceString / localizedString(StringResource)
  patterns:
    - 9 Trakt library-sync error messages (TraktLibraryRepository)
    - P2P unknown torrent error (P2pStreamingEngine.android)
    - "More actions" detail action-menu contentDescription (DetailActionButtons)
- FR aligned with existing keys for consistency (request failed, rate limit,
  watchlist). Technical terms kept (Trakt, P2P, badge, URL). Tutoiement,
  apostrophes typographiques. MPVKit submodule pointer untouched.
2026-06-13 08:47:12 +02:00
tapframe
1b6d4fdefa Stop prefetching streams on meta screen 2026-06-13 08:49:24 +05:30
tapframe
7cbd4503e6 Add touch gestures settings 2026-06-12 21:24:14 +05:30
tapframe
8ec9684f51 Make shelf view-all action icon-only 2026-06-12 21:08:39 +05:30
tapframe
f2c9978f76 Fallback to title text when logos are unavailable 2026-06-12 20:46:08 +05:30
tapframe
7f200c7c7d Loop home hero carousel navigation 2026-06-12 20:41:53 +05:30
tapframe
2ce0866b79 Keep shelf headers aligned without view all 2026-06-12 20:39:30 +05:30
tapframe
288794d22a Fix player source identity merge integration 2026-06-12 20:27:22 +05:30
tapframe
6344725d6b Merge remote-tracking branch 'origin/pr/1327' into cmp-rewrite
# Conflicts:
#	composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeSourceActions.kt
2026-06-12 20:24:27 +05:30
tapframe
e897ec2e9a Merge remote-tracking branch 'origin/pr/1326' into cmp-rewrite
# Conflicts:
#	composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreenRuntimeSourceActions.kt
#	composeApp/src/desktopMain/kotlin/com/nuvio/app/features/player/PlayerEngine.desktop.kt
2026-06-12 20:21:52 +05:30
tapframe
4c778a0b38 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-12 20:15:12 +05:30
Nayif
7edf120636
Merge pull request #1329 from anikettuli/fix/trakt-scrobble-bundle
fix(trakt): stop scrobbling the next episode as watched and surface save failures
2026-06-12 20:14:57 +05:30
tapframe
32a26951f7 Refresh watch progress when clearing CW cache 2026-06-12 20:07:28 +05:30
tapframe
142afd14a7 Fix tablet metadata action alignment 2026-06-12 19:14:08 +05:30
tapframe
1c7d6acd9b Revert "Merge branch 'desktopweb' into cmp-rewrite"
This reverts commit b420dcaf71, reversing
changes made to fdadc7c610.
2026-06-12 16:03:28 +05:30
tapframe
c755ead445 Revert "Update player controls state"
This reverts commit 850988bf87.
2026-06-12 15:59:16 +05:30
Nayif
4322669a8b
Merge pull request #1306 from siriusvoid/fix/hold-autoplay-for-post-credits 2026-06-12 15:57:13 +05:30
Aniket Tuli
582e0ff40e refactor(trakt): snapshot scrobble item inputs through a single holder
The stop-scrobble path snapshots its inputs via
snapshotTraktScrobbleItemInputs() returning a TraktScrobbleItemInputs
holder instead of seven loose locals, so adding a field to the item
cannot silently miss the snapshot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 03:03:41 -07:00
Aniket Tuli
a211d77017 fix: route torrent:// urls through torrent playback instead of the player
Addons that embed the torrent identity in the url field (torrent://<hash>[/<fileIdx>]) with a null infoHash were treated as direct HTTP streams: playableDirectUrl surfaced the raw torrent:// string to the player, isTorrentStream missed it so debrid never engaged, and p2pInfoHash could not extract a hash so the p2p engine never engaged. Equivalent of NuvioTV#2174: classify torrent:// URLs as torrents, never surface them as playable, extract a validated info hash (40-char hex or 32-char base32) and trailing file index for the p2p path, and build proper magnet URIs for debrid from the effective hash. torrent://null and other unextractable URLs yield a null hash and stay unselectable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 02:49:20 -07:00
Aniket Tuli
0e5ba830d2 fix: stop scrobbling next episode as watched and surface Trakt save errors
Fixes #1196
Fixes #1192

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 02:37:10 -07:00
Luqman Fadlli
25b1e57625
Merge branch 'NuvioMedia:cmp-rewrite' into fix-ios-popup-trailer 2026-06-12 16:17:19 +07:00
Aniket Tuli
fe747ffc3e fix(player): normalize declared stream type at ingestion
streamType is now trimmed, lowercased, and blanked to null by a shared
normalizeStreamType helper at all four ingestion sites, and the player
derives a single normalized value for both its rebuild keys and MIME
inference, so values like " HLS " cannot cause key churn or missed
mappings. The helper lives in commonMain and is covered by commonTest
together with a parser round-trip for a padded uppercase type.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 17:02:22 -07:00
Aniket Tuli
3d52716770 fix(player): honor declared stream type for HLS without .m3u8 URLs
Plugin scrapers (and some non-standard addons) declare the manifest
format of their links via a "type" field ("hls", "dash") on the
stream object. PluginRuntime already parses it into
PluginRuntimeResult.type, but both toStreamItem conversions dropped
it, and PlayerEngine.android.kt built MediaItems with no MIME type,
leaving ExoPlayer to infer the format from the URL extension. For
HLS links whose URL hides the .m3u8 behind tokens or rewriters
(https://cdn.example.com/playlist?token=…), inference fails and
playback errors or stalls.

This change:
- Adds a streamType field to StreamItem, populated from stream.type
  in StreamParser, MetaDetailsParser embedded streams, and both
  PluginRuntimeResult.toStreamItem conversions (StreamsRepository and
  PlayerStreamsRepository).
- Plumbs the value through PlayerLaunch / PlayerScreen /
  PlatformPlayerSurface and the in-player source-switch paths.
  Switches to P2P sentinels and downloaded local files reset the
  value to null so a stale "hls" can never mislabel the next source.
  streamType participates in the player rebuild keys so a source
  change always rebuilds with the right MIME.
- Persists streamType in the Reuse Last Link cache (defaulted
  serializable field, old payloads stay decodable) so a typed HLS
  stream that played once keeps working through link reuse.
- In playbackMediaItemFromUrl, the declared type takes precedence
  over response-header and URL-path inference, mapping "hls"/"m3u8" →
  APPLICATION_M3U8, "dash"/"mpd" → APPLICATION_MPD,
  "ss"/"smoothstreaming" → APPLICATION_SS. Unrecognized values
  (including Stremio's content-type semantics like "movie"/"series")
  fall through to the existing inference chain unchanged.

The official Stremio stream spec defines no top-level type field, so
the Stremio-addon parsing is best-effort; the reliable emitters are
plugin scrapers, whose results previously lost the field entirely.

Scopes down to #1244 only. #1246 (User-Agent override) is already
fixed in the current PlayerPlaybackNetworking.createHttpDataSourceFactory,
which skips setUserAgent when caller-supplied headers declare one.

Fixes #1244

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 16:26:15 -07:00
siriusvoid
539ec44a6d ref: clean up constants unused after threshold change 2026-06-11 19:04:25 +00:00
siriusvoid
4d811c2071 fix: take user's threshold when calculating post credit scene 2026-06-11 14:33:11 +00:00
paregi12
2e2360be54
Merge branch 'NuvioMedia:cmp-rewrite' into cmp 2026-06-11 16:44:11 +05:30
tapframe
4eb919df71 Make mobile home catalog sync pull-only on startup 2026-06-11 13:32:45 +05:30
paregi12
f468be5542
Merge branch 'NuvioMedia:cmp-rewrite' into cmp 2026-06-11 13:16:46 +05:30
tapframe
5249614b50 feat: catalog order to be cross-platform 2026-06-11 13:00:46 +05:30
tapframe
850988bf87 Update player controls state 2026-06-11 03:00:51 +05:30
paregi12
acdfefc2ac Merge upstream/cmp-rewrite into cmp 2026-06-11 02:21:44 +05:30
Nayif
ee5c923091
Merge pull request #1313 from skoruppa/cmp-rewrite
Download subtitles locally before passing to external players
2026-06-11 01:51:45 +05:30
Nayif
a0a97325e4
Merge pull request #1314 from skoruppa/port/trakt-non-standard-ids
Fix Trakt scrobble for non-standard IDs
2026-06-11 01:50:24 +05:30
tapframe
cc7c4eedf6 Fix header touch handling
Fixes #1187

Fixes #1210

Fixes #1251
2026-06-11 01:45:57 +05:30
tapframe
3bcf74dd75 Fix collection view all genre filter
Fixes #1264
2026-06-11 01:35:08 +05:30
tapframe
e7e6e333e6 Fix continue watching prompt during playback
Fixes #1273
2026-06-11 01:28:12 +05:30
tapframe
f065e27203 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-11 01:27:31 +05:30
Nayif
138089922a
Merge pull request #1302 from DynamycSound/fix/trakt-watchlist-recently-added-order
fix(trakt): restore recently-added order for Trakt watchlist
2026-06-11 01:24:06 +05:30
tapframe
b5389915a4 Fix shared mobile regression checks 2026-06-11 01:17:33 +05:30
tapframe
820a1344e3 Revert "Merge branch 'toropt' into cmp-rewrite"
This reverts commit dcf4d059f6, reversing
changes made to 350250cb60.
2026-06-11 00:47:21 +05:30
tapframe
3308a60528 Merge branch 'cmp-rewrite' into desktopweb 2026-06-11 00:34:38 +05:30
tapframe
2b2d1f56ad Fix Android process-death recovery
Persist pending debrid device-code authorization so returning from the browser after Android process death can continue polling the same session.

Recover cached profiles during auth rehydration instead of briefly dumping users to login after background kills.

Include debrid and downloads preferences in local account cleanup on sign-out.
2026-06-11 00:28:00 +05:30
tapframe
34c565e89f Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-06-10 22:02:17 +05:30
paregi12
8f991d2912
Merge branch 'NuvioMedia:cmp-rewrite' into cmp 2026-06-10 21:47:35 +05:30
tapframe
83e475d23d refactor(MetaDetailsScreen): replace vertical scroll with lazy column 2026-06-10 20:05:39 +05:30
tapframe
f136213339 ref: packaging configs 2026-06-10 19:54:50 +05:30
tapframe
330d2537d9 Merge branch 'cmp-rewrite' into desktopweb 2026-06-10 18:22:33 +05:30
skoruppa
860e5e4e2c Add option to enable addons logo in stream screen 2026-06-10 14:46:48 +02:00
tapframe
ed2d29ffc5 Fix appearance theme grid layout 2026-06-10 17:39:20 +05:30
skoruppa
13d82961e3 Fix Trakt scrobble for non-standard IDs, preserve anime CW entries 2026-06-10 12:57:22 +02:00
skoruppa
becf580a49 Download subtitles locally before passing to external players 2026-06-10 12:41:15 +02:00
tapframe
9eb4ba224b feat: add playback error handling 2026-06-10 15:31:36 +05:30
tapframe
3629141365 feat: plugin support for desktop 2026-06-10 15:16:18 +05:30
tapframe
3c6bb75fd0 fix: render lock causing freeze 2026-06-10 14:42:08 +05:30
tapframe
29d7e611be ref: remove external player button 2026-06-10 12:41:48 +05:30
Luqman Fadlli
b866111b01
Merge branch 'NuvioMedia:cmp-rewrite' into fix-ios-popup-trailer 2026-06-10 08:16:42 +07:00
tapframe
4913800b6a refactor: optimize player UI resizing to avoid animations 2026-06-10 02:58:30 +05:30
tapframe
14a461ab92 ref: adjust to player UI resizes 2026-06-10 02:36:13 +05:30
tapframe
c443c68c6b ref(macos): render api for better edr management. 2026-06-10 02:31:15 +05:30
paregi12
b08144d7a7
Merge branch 'NuvioMedia:cmp-rewrite' into cmp 2026-06-10 01:28:51 +05:30
Nayif
2c39f09a84
Merge pull request #1297 from DynamycSound/fix/app-language-persist-across-profile-sync
fix(android): keep app language out of per-profile settings sync
2026-06-10 01:14:10 +05:30
tapframe
a286453bee ref(hero): adjust logo sizing 2026-06-10 00:24:54 +05:30
tapframe
e1fcc8750d feat: layout change for desktop home hero 2026-06-10 00:06:11 +05:30
tapframe
84cc669bd5 feat: sidebar for desktop 2026-06-09 23:10:01 +05:30
tapframe
212bab5d27 ref: adjust detail hero height 2026-06-09 21:57:36 +05:30
tapframe
f386320305 feat: add desktop version configuration 2026-06-09 21:46:48 +05:30
tapframe
9a79a5a7e3 feat: support app versioning 2026-06-09 21:42:34 +05:30
tapframe
c77db9afd3 fix: auto-hide 2026-06-09 21:28:18 +05:30
tapframe
d3e0777cb5 feat: pause overlay for desktop player 2026-06-09 21:16:31 +05:30
tapframe
e31c39b1a6 Refactor code structure 2026-06-09 20:42:23 +05:30
tapframe
2a21f294c5 fix: episode card clipping 2026-06-09 20:31:10 +05:30
tapframe
3a4bf91000 feat: support scrolling for episode list 2026-06-09 20:26:54 +05:30
tapframe
bc75392872 perf: warm desktop player controls loading 2026-06-09 19:55:57 +05:30
tapframe
5b8a4aff9b fix: implement DesktopPlayerLaunchShield for fixing brief white flash 2026-06-09 19:17:09 +05:30
tapframe
da9fff8795 feat: adding keys for fullscreen/exit 2026-06-09 17:41:58 +05:30
tapframe
0acce0d3b5 feat: Implement native desktop window chrome support for Windows 2026-06-09 17:19:51 +05:30
tapframe
6d2abeab84 cleanup logs 2026-06-09 17:05:08 +05:30
tapframe
f6f427b170 ref: image scal;ing gate to windows 2026-06-09 17:05:08 +05:30