Commit graph

18 commits

Author SHA1 Message Date
KhooLy
6b218ba97f Track enabled/disabled addon state and respect it when fetching content
FluxaAppleAddonConfigurationStore gains a disabled-addon set and
enabledAddonUrls(); Home/Search/Discover/Detail now fetch from
enabledAddonUrls() instead of the raw configured list, so disabling an
addon in the store actually stops it from being queried.
2026-07-20 15:05:25 +03:00
KhooLy
270d82d6cd Add FluxaApplePluginRepositoryManager owning a dedicated plugin engine
Mirrors Android's PluginRepositoryManager: owns its own headless
runtime instance, dispatches repo/scraper actions, persists state via
UserDefaults, and exposes scraper settings layout and execution.
2026-07-20 14:43:43 +03:00
KhooLy
cbbe4f488f Add Swift PluginHttpClient implementation for iOS plugin scrapers
Implements the generated PluginHttpClient callback interface
synchronously via URLSession, with an SSRF guard (scheme allow-list
plus resolved-address blocklist) mirroring Android's PluginNetGuard.
2026-07-20 14:43:39 +03:00
KhooLy
bd780396d1 Complete shared KMP and CMP migration 2026-07-16 15:50:35 +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
c4123c77e3 Add shared Apple search flow 2026-07-13 17:39:50 +03:00
KhooLy
834fdc7980 Add Apple detail metadata effect 2026-07-13 16:14:58 +03:00
KhooLy
7b13760f2b Silence Apple runtime teardown warning 2026-07-13 16:10:42 +03:00
KhooLy
3aefc7654d Fix Apple addon catalog resolver build 2026-07-13 16:09:09 +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
9b2593e5fd Add Apple platform effect executor 2026-07-13 15:50:42 +03:00
KhooLy
7a3a7db34a Add Apple headless effect coordinator 2026-07-13 15:48:53 +03:00
KhooLy
5cc93c4d9f Initialize Apple Rust headless runtime 2026-07-13 15:46:26 +03:00