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 viacapacitor-plugin-loader.ts.
Rules
Pure platform/call-notification rules live in logic/*.rules.ts and are Vitest-tested without Angular.