Commit graph

1725 commits

Author SHA1 Message Date
tapframe
f5b75adccb fix: show player streams progressively 2026-07-18 13:17:01 +05:30
tapframe
83ac09bac3 fix: preserve download metadata and nav layout 2026-07-18 13:05:02 +05:30
tapframe
824f2a22ad Merge branch 'playerui/tvparity' into cmp-rewrite 2026-07-18 03:46:00 +05:30
tapframe
78b826fdf7 Merge PR #1331: fix Torbox cloud library on Android 2026-07-18 03:41:12 +05:30
tapframe
50bb2bcc52 fix: bound generic Android raw responses 2026-07-18 03:40:53 +05:30
tapframe
03c6d598ba feat(player): match overlays to TV UI 2026-07-18 03:29:55 +05:30
tapframe
20d091e907 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-18 02:06:23 +05:30
Nayif
77049f4e00
Merge pull request #1562 from skoruppa/modern-menu
modern floating pill navigation bar with scroll-responsive labels
2026-07-18 02:06:19 +05:30
Nayif
0cc804198a
Merge pull request #1558 from Laskco/codex/tmdb-release-date-toggle
Add TMDB release date controls and fix episode availability
2026-07-18 02:05:12 +05:30
Nayif
2adf4bacf2
Merge pull request #1509 from kgenovz/feat/default-video-id
feat(details): support behaviorHints.defaultVideoId for series initial play
2026-07-18 01:56:25 +05:30
Nayif
5218ca86b1
Merge pull request #1545 from emgeje/cmp-rewrite
Updated Hungarian translations (Add diagnostics and Sentry reporting strings)
2026-07-18 01:55:23 +05:30
tapframe
0165392f75 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-18 01:54:49 +05:30
Nayif
7f6feddafd
Merge pull request #1552 from neerajlovecyber/feature-player-episode-watched-tick
Show watched checkmarks in player episode switcher
2026-07-18 01:54:01 +05:30
tapframe
0cb0e20918 fix(trakt): invalidate rejected refresh tokens 2026-07-17 23:29:03 +05:30
haveAnIssue
2f236e9e3b
Update AppLanguage.kt
Enable Hebrew
2026-07-17 14:33:42 +03:00
haveAnIssue
54f6ca9112
Create strings.xml
Add Hebrew Translation
2026-07-17 14:28:33 +03:00
skoruppa
e7322071ff feat: modern floating pill navigation bar with scroll-responsive labels
- New floating pill-shaped bottom nav bar
- Scroll down to collapse labels, scroll up to expand (snap animation)
- Haze blur-through effect on the pill background
- Selected tab uses accent color from theme
- Dynamic pill width: shrinks when collapsed, expands with labels
- Settings option (Android only): Adaptive, Always Expanded, Always Compact, Classic
- Classic mode preserves original flat navigation bar
- NavBarStyle syncs to cloud (ignored on iOS where LiquidGlass is used)
- iOS LiquidGlass tab bar remains untouched
- Polish translations added
2026-07-17 10:40:05 +02:00
YLaskco
f4ff269d45 Fix episode release date handling 2026-07-16 16:41:41 -04:00
Luqman Fadlli
6de66cfa76 fix(ios): restore back gesture and navigation 2026-07-17 00:11:44 +07:00
tapframe
c68d996881 fix: fix collection keys dupliation causing sigsegv 2026-07-16 22:40:38 +05:30
tapframe
4ba92f3926 perf: optimize metadata screen scrolling 2026-07-16 22:24:46 +05:30
tapframe
e56fb2e87e feat: reveall spoiler comments by tapping 2026-07-16 13:50:33 +05:30
tapframe
6ae6f60926 feat: hero overscroll 2026-07-16 13:46:12 +05:30
tapframe
57a8405a54 feat: add hero auto rotation 2026-07-16 12:41:21 +05:30
tapframe
1dbbbdecbc Refine iOS sheets and ratings 2026-07-16 12:33:27 +05:30
tapframe
f9b5ef8aef Fix metadata rail scrolling 2026-07-15 23:59:26 +05:30
neerajlovecyber
acaec75b54 Show watched checkmark on player episode list rows.
Reuse NuvioAnimatedWatchedBadge so completed episodes match the series detail page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 16:45:48 +05:30
tapframe
1050bc0771 ref: remove contribution summary 2026-07-15 16:09:22 +05:30
tapframe
78ec152b9c ref: adjust progress color based on theme in AppUpdateBanner 2026-07-15 16:01:18 +05:30
tapframe
cc59387588 feat: update banner layout 2026-07-14 23:12:02 +05:30
emgeje
479153e943
Add diagnostics and Sentry reporting strings
Added new strings for diagnostics and Sentry reporting features.
2026-07-14 14:45:42 +02:00
tapframe
409a2e9b01 remove unused seekToMs func 2026-07-14 17:04:49 +05:30
tapframe
0f155c752c remove duplicate strings 2026-07-14 16:51:46 +05:30
Nayif
5230f2b975
Merge pull request #1471 from nosvasedis/fix-greek-translations
Fix and complete Greek (el) translations
2026-07-14 16:38:05 +05:30
tapframe
d2a6206357 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-14 16:36:19 +05:30
Nayif
f314cfea35
Merge pull request #1530 from luqmanfadlli/crossplatform-nowplayingcontrol
feat(android): Add Android support for Now Playing media controls
2026-07-14 16:36:00 +05:30
tapframe
d924a46ca0 Merge branch 'cmp-rewrite' of https://github.com/NuvioMedia/NuvioMobile into cmp-rewrite 2026-07-14 16:29:03 +05:30
Nayif
ab71682ef6
Merge pull request #1516 from WhiteGiso/translations-it
Added new Italian translations
2026-07-14 16:22:44 +05:30
Nayif
d7c88d35f2
Merge pull request #1536 from darkflame91/pipmode
fix(android): fix issues with PiP window
2026-07-14 16:22:27 +05:30
tapframe
89149fb063 fix: stabilize continue watching scroll position 2026-07-14 16:20:29 +05:30
tapframe
f74ae8182e refactor: update library sync logic while in active pull state 2026-07-14 16:02:33 +05:30
WhiteGiso
cc650d0950 fix(ios): stabilize profile switcher menu 2026-07-14 11:06:38 +02:00
Trần Khánh
a1649b0e1b Update strings.xml 2026-07-14 14:58:17 +07:00
Trần Khánh
b38d446a9f Update strings.xml 2026-07-14 14:43:46 +07:00
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
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
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
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