Commit graph

51 commits

Author SHA1 Message Date
tapframe
1b88c5abef feat: integrate Nuvio Engine 2026-07-20 16:50:04 +05:30
tapframe
cc59387588 feat: update banner layout 2026-07-14 23:12:02 +05:30
tapframe
fc87a44adc revert: restore previous empty state UI 2026-07-12 19:36:11 +05:30
tapframe
d9954c04e8 Refine store copy and empty states 2026-07-12 02:14:35 +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
d6a0d2da52 ref: rename files 2026-06-26 22:53:12 +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
paregi12
baaf8f9a8b Merge upstream/cmp-rewrite into cmp 2026-06-15 20:22:32 +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
paregi12
acdfefc2ac Merge upstream/cmp-rewrite into cmp 2026-06-11 02:21:44 +05:30
tapframe
3629141365 feat: plugin support for desktop 2026-06-10 15:16:18 +05:30
tapframe
9a79a5a7e3 feat: support app versioning 2026-06-09 21:42:34 +05:30
tapframe
5060d23c14 ref: gate plugins, downloads 2026-06-09 01:31:02 +05:30
paregi12
8402614503
Merge branch 'NuvioMedia:cmp-rewrite' into cmp 2026-06-04 06:41:53 +05:30
tapframe
150081f832 feat(android): metahero trailer playback 2026-06-04 01:01:15 +05:30
tapframe
53bd43963b ref: remove IMDb badges from store version 2026-06-03 23:14:57 +05:30
paregi12
566966f3f0 fix(plugins): repair crypto polyfills 2026-06-02 13:51:05 +05:30
paregi12
19c6059855 Merge remote-tracking branch 'upstream/cmp-rewrite' into cmp
# Conflicts:
#	composeApp/src/commonMain/kotlin/com/nuvio/app/features/player/PlayerScreen.kt
#	composeApp/src/commonMain/kotlin/com/nuvio/app/features/streams/StreamModels.kt
#	composeApp/src/fullCommonMain/kotlin/com/nuvio/app/features/plugins/PluginRuntime.kt
2026-05-31 18:17:51 +05:30
paregi12
23afaf9ad7 Merge remote-tracking branch 'upstream/cmp-rewrite' into cmp
# Conflicts:
#	composeApp/src/androidMain/kotlin/com/nuvio/app/features/player/PlayerEngine.android.kt
2026-05-28 08:21:03 +05:30
Stéphane
fd71323cb5 merge: PR #1029 feat(i18n) extract last deep-cut hardcoded strings
Resolved conflicts in values/strings.xml and values-fr/strings.xml
by concatenating both blocks (no duplicate keys).
2026-05-24 09:41:51 +02:00
paregi12
73c97bfeb7 feat(crypto): implement AES-GCM for iOS and enhance PBKDF2/Base64 support 2026-05-21 15:56:42 +05:30
Stéphane
d1ee3cf784 feat(i18n): extract last deep-cut hardcoded strings to resources
Migrates 13 additional user-facing English literals found across 7 files
in a follow-up audit. Adds 13 new keys (EN + FR) and replaces the inline
literals with `getString(...)` / `runBlocking { getString(...) }`
depending on context.

- RuntimeFormat: episode / runtime hours+minutes template (`%dh %dm`,
  `%dh`, `%dm` → resource-backed; FR uses `%d h %d min`).
- SearchRepository: `require {}` empty-result message now hits
  `search_error_no_results_for_catalog` instead of the inline literal.
- PluginRepository: `already installed`, install-failed, refresh-failed
  fallback messages.
- PluginManifestParser: three `require {}` validation messages (name,
  version, providers).
- AddonManifestParser: `Manifest missing "<name>"` exception now uses
  `addons_manifest_missing_field`.
- PlayerEngine.ios: `MPV not available — Please rebuild the app` →
  `player_error_mpv_unavailable`.
- YoutubeChunkedDataSourceFactory: the developer-facing `No DataSpec`
  exception is replaced by a user-friendly `Unable to play this stream.`
  message that's safe to render through `onPlayerError.localizedMessage`.

FR translations follow existing conventions (tutoiement, curly apostrophes,
NBSP inside `« »`, internal branch names kept out of user-facing copy).
2026-05-20 06:41:24 +02:00
Stéphane
546226c79f feat(i18n): extract remaining hardcoded strings flagged by audit
Migrates the long tail of user-facing English literals identified by the
audit report — 65 new keys across 14 source files plus the matching FR
translations (tutoiement, NBSP, curly apostrophes).

Categories:
- TMDB filter placeholders in CollectionEditorScreen (10 keys, "28,12",
  "2020-01-01", "100", "en, ko, ja, hi", etc.)
- Collection editor titles & errors in CollectionEditorRepository
  (TMDB/Trakt fallback titles, validation errors, "Could not load …")
- Folder type labels in FolderDetailRepository ("Trakt Series List",
  "Trakt Movie List")
- TMDB resolver errors (api key required, not found, missing IDs, discover
  no data) in TmdbCollectionSourceResolver
- Trakt public list resolver errors and search-result fallbacks in
  TraktPublicListSourceResolver (rate limit, not public, items/likes
  counts, credentials missing, error_with_code formatter)
- Comments load failure in TraktCommentsRepository
- Trakt status messages (Connected/Disconnected) in TraktAuthRepository
- AppUpdater exceptions (no release, github api error, missing tag,
  no APK asset) — also strips the "cmp-rewrite" branch name from the
  user-facing copy
- HTTP error fallbacks shared by both AddonPlatform.{android,ios}.kt
  ("Request failed with HTTP %d", "Empty response body")
- AndroidAppUpdaterPlatform download/install errors
- iOS DownloadsPlatformDownloader file/HTTP errors
- SubtitleRepository addon-subtitle display format
- DownloadsLiveStatusPlatform.android Pause action (reuses
  compose_action_pause) and the byte-unit table (now includes
  unit_bytes_tb)

Non-Composable suspend bodies use the existing `getString(...)` pattern;
synchronous bodies (constructors, lambda inits) use the established
`runBlocking { getString(...) }` pattern already in the codebase.

Keys that overlap with #943 (the FR overhaul PR) use the exact same
names so the eventual merge is a no-op on those.
2026-05-20 06:41:00 +02:00
paregi12
a5493a84a7 feat(plugins): implement declarative plugin settings system with multi-platform storage 2026-05-18 10:40:44 +05:30
paregi12
e76119ee44 feat: complete modular plugin runtime transition with url bridge and enhanced polyfills 2026-05-16 18:25:49 +05:30
paregi12
4c59ab90a3 feat(plugin-runtime): implement robust, future-proof native crypto engine (AES, PBKDF2, Web Crypto) 2026-05-16 15:22:07 +05:30
tapframe
5b53f6046a feat: support for external player 2026-05-13 13:27:12 +05:30
tapframe
32f937a4e0 feat: support for external player 2026-05-13 13:27:12 +05:30
tapframe
44604d3ef2 fix: android file pickup fix and modal button alignement fix 2026-04-19 01:43:12 +05:30
tapframe
56997df8e2 fix: android file pickup fix and modal button alignement fix 2026-04-19 01:43:12 +05:30
tapframe
2d2f5ccf4c feat: in app updater 2026-04-19 01:15:39 +05:30
tapframe
41ef04c1cb feat: in app updater 2026-04-19 01:15:39 +05:30
tapframe
73c29ccab8 ref: playbackDataSourceFactory to be in parity with Nuvio TV 2026-04-12 19:44:31 +05:30
tapframe
2f74c3cab0 ref: playbackDataSourceFactory to be in parity with Nuvio TV 2026-04-12 19:44:31 +05:30
chrisk325
c50f52bfc2 add headers 2026-04-12 16:09:58 +05:30
chrisk325
510db10381
add headers 2026-04-12 16:09:58 +05:30
chrisk325
4dbdd16e48 fix: http protocol redirects 2026-04-12 14:45:59 +05:30
chrisk325
1e67e8a9e5
fix: http protocol redirects 2026-04-12 14:45:59 +05:30
tapframe
7b7ac23784 fix(downloads): passing resume position 2026-04-11 21:30:44 +05:30
tapframe
7c2cad51b9 fix(downloads): passing resume position 2026-04-11 21:30:44 +05:30
tapframe
35428ca5fd feat: add support for response headers in playback data source handling 2026-04-08 14:58:35 +05:30
tapframe
42a4ee2d66 feat: add support for response headers in playback data source handling 2026-04-08 14:58:35 +05:30
tapframe
b7e12cb26a fix: remove trailer data source layer leaking for normal playback 2026-04-07 01:30:39 +05:30
tapframe
f83e8192ea fix: remove trailer data source layer leaking for normal playback 2026-04-07 01:30:39 +05:30
tapframe
09502e4b67 cleanup trailer extraction logic 2026-04-05 15:47:46 +05:30
tapframe
8e6792db0c cleanup trailer extraction logic 2026-04-05 15:47:46 +05:30
tapframe
631604a5dc shared fullcommonMain 2026-04-05 15:34:27 +05:30
tapframe
f61882b208 shared fullcommonMain 2026-04-05 15:34:27 +05:30
tapframe
4f27afc174 flavouring plugins 2026-04-04 21:45:47 +05:30