# Mobile infrastructure Loosely coupled Capacitor/native bridge for the Angular product client. Domains depend on facades in this folder — never on `@capacitor/*` imports directly. ## Facades | Service | Responsibility | |---------|----------------| | `MobilePlatformService` | Runtime detection (`browser` / `capacitor` / `electron`) and mobile UX flags | | `MobileNotificationsService` | Local/push notifications for calls | | `MobileCallSessionService` | In-call notification actions, background audio session, stream video hand-off | | `MobileMediaService` | Attachment picker, speakerphone route, screen-share/PiP capability probes | | `MobilePictureInPictureService` | Stream pop-out while backgrounded | | `MobilePersistenceService` | Native SQLite schema init (`@capacitor-community/sqlite`) | | `MobileSqliteConnectionService` | Shared SQLite connection for persistence + `DatabaseService` | | `MobileCallKitService` | iOS CallKit active-call reporting for background voice | | `MobilePushRegistrationService` | FCM/APNs token registration with signaling server; skips `PushNotifications.register()` when Firebase/APNs is not configured | | `MobileAppLifecycleService` | Foreground/background lifecycle | ## Adapters - `adapters/web/*` — browser fallbacks (Notification API, hidden file input, Document PiP). - `adapters/capacitor/*` — lazy-loaded Capacitor plugins via `capacitor-plugin-loader.ts`. ## Rules Pure platform/call-notification rules live in `logic/*.rules.ts` and are Vitest-tested without Angular.