Commit graph

23 commits

Author SHA1 Message Date
KhooLy
2cfc819951 Add iOS headless-effect handler for fetchPluginManifest
Fetches plugin repository manifests over URLSession and parses them
via coreInvoke, matching Android's FluxaAndroidHeadlessEnvironment
fetchPluginManifest behavior.
2026-07-20 14:43:41 +03:00
KhooLy
7085c5c7bf Fix iOS Kotlin interop build
Some checks failed
Apple / iOS simulator (push) Has been cancelled
Apple / tvOS simulator (push) Has been cancelled
Platform Verification / Android shared modules (push) Has been cancelled
2026-07-16 16:22:41 +03:00
KhooLy
bd780396d1 Complete shared KMP and CMP migration 2026-07-16 15:50:35 +03:00
KhooLy
7d431cb6cb Avoid capturing app state in callbacks 2026-07-14 21:08:15 +03:00
KhooLy
278f0f1f9b Avoid capturing app value in callback 2026-07-14 20:42:54 +03:00
KhooLy
b5510e3b84 Import shared iOS bridge 2026-07-14 20:15:30 +03:00
KhooLy
03edaa138d Fix iOS detail bridge compilation 2026-07-14 19:48:12 +03:00
KhooLy
be954edd4b Fix Apple host compilation 2026-07-14 19:13:11 +03:00
KhooLy
20476761a9 Migrate shared UI and Apple playback to KMP 2026-07-14 18:14:18 +03:00
KhooLy
a9f6e65b36 Migrate shared Apple UI bridges to KMP 2026-07-14 16:55:16 +03:00
KhooLy
909906fab3 Build real Stremio login for iOS Auth, Keychain-backed session storage
Fixes AppleAuthDataSource: continueWithNuvio/continueWithStremio/
continueWithoutAccount were incorrectly routed through Swift
notifications - Android handles all three as pure local UI-state
transitions (no network), so this matches that instead of adding
unnecessary indirection.

submit() for the Credentials stage now posts a real request that
FluxaAppleAuthStartup.swift picks up: FluxaAppleStremioAuthClient
mirrors StremioService.kt's api.strem.io/api/login and /api/register
endpoints via URLSession, and the resulting session (id/email/authKey)
is persisted through FluxaAppleAuthStore using the Keychain generic-
password API (kSecClassGenericPassword, accessible-after-first-unlock),
not UserDefaults - this is the first credential-bearing data iOS
persists, unlike the existing UserDefaults-backed local stores.

Nuvio login/import is out of scope here: Android's version pulls
profile/addons/library/progress/history/collections through
NuvioAccountImportCoordinator, which needs library and addon-store
integration iOS doesn't have yet. The Nuvio stage transition works
(continueWithNuvio), but submitting Nuvio credentials currently has no
Swift listener - same "reachable but inert" scope already established
for AddonStore.

The error-state message on failed Stremio login is a hardcoded English
string rather than routed through AppStrings, since calling Kotlin's
AppStrings.t() from pure Swift needs framework-export verification I
can't perform without Xcode.

Caveat: this Swift code (Keychain access, URLSession networking) is
unverified - no Xcode/macOS toolchain available in this environment.
Only the Kotlin side (AppleAuthDataSource, all Gradle targets) is
compile-checked. Needs a real Xcode build and device/simulator test
before shipping.
2026-07-14 13:56:30 +03:00
KhooLy
0497395057 Add Apple discover effect handler 2026-07-13 17:48:54 +03:00
KhooLy
c4123c77e3 Add shared Apple search flow 2026-07-13 17:39:50 +03:00
KhooLy
0d438b2edb Fix Apple catalog startup actor isolation 2026-07-13 17:15:49 +03:00
KhooLy
eca5306fa6 Route Apple catalog selections to shared details 2026-07-13 16:21:16 +03:00
KhooLy
834fdc7980 Add Apple detail metadata effect 2026-07-13 16:14:58 +03:00
KhooLy
58ef97d97c Initialize Apple runtime before catalog startup 2026-07-13 16:06:21 +03:00
KhooLy
a33abcae83 Route Apple home loading through headless effects 2026-07-13 16:05:18 +03:00
KhooLy
d4f5dfd49f Add Apple addon catalog bootstrap 2026-07-13 15:59:01 +03:00
KhooLy
efb6b0c233 Load Apple catalogs into shared home 2026-07-13 15:53:53 +03:00
KhooLy
5cc93c4d9f Initialize Apple Rust headless runtime 2026-07-13 15:46:26 +03:00
KhooLy
cb99b2b1e8 Add shared catalog action boundary 2026-07-13 15:08:20 +03:00
KhooLy
45c45b0ce6 Add Apple multiplatform foundation 2026-07-13 03:47:45 +03:00