Files
Toju/toju-app/src/app/infrastructure/mobile/README.md

1.5 KiB

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.