mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
Replaces capod's older billing core, upgrade UI and their tests with the canonical sdmaid-se stack at the pinned revision. Core (gplay): BillingManager/BillingConnection/BillingConnectionProvider on billing 8.3 with the centralized connect loop, merging purchases-listener overlay and the canonical ack pipeline; the dying ack collector, the ackedTokens gate and the in-billing foreground loop are gone. Full canonical exception set (internal/network/offer-unavailable added), OurSku with capod's product ids, BillingCache with snapshot()/episode-guarded stampLastProState. FOSS: UpgradeControlFoss becomes UpgradeRepoFoss and exposes the canonical API surface over capod's RETAINED FossUpgrade/FossCache schema — existing supporter records must keep decoding. Diagnostics: UpgradeDiagnostics + gplay/foss implementations, read by RecorderModule next to CurriculumVitae's Pro history as two independent, isolated header reads. UI: canonical upgrade screens for both flavors under common/upgrade/ui with capod chrome (M3 AlertDialog keeping rotation-safety, capod Scaffold, capod previews). Nav.Main.Upgrade gains `forced`. Entitlement refresh moves to a per-resume, unthrottled MainActivity call. Strings reuse capod's existing translated ids wherever equivalent; only referenced-but-missing ones are authored. mockk 1.12.4 -> 1.14.9: 1.12.4 cannot synthesize a sealed-class return value while recording, which the ported restore tests need.