@mentra/engine 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -0
- package/build/devtools.d.ts +11 -0
- package/build/devtools.d.ts.map +1 -0
- package/build/devtools.js +13 -0
- package/build/devtools.js.map +1 -0
- package/build/engine.d.ts +261 -0
- package/build/engine.d.ts.map +1 -0
- package/build/engine.js +170 -0
- package/build/engine.js.map +1 -0
- package/build/facades/dev.d.ts +58 -0
- package/build/facades/dev.d.ts.map +1 -0
- package/build/facades/dev.js +189 -0
- package/build/facades/dev.js.map +1 -0
- package/build/facades/display.d.ts +21 -0
- package/build/facades/display.d.ts.map +1 -0
- package/build/facades/display.js +17 -0
- package/build/facades/display.js.map +1 -0
- package/build/facades/displayMirror.d.ts +15 -0
- package/build/facades/displayMirror.d.ts.map +1 -0
- package/build/facades/displayMirror.js +29 -0
- package/build/facades/displayMirror.js.map +1 -0
- package/build/facades/gallery.d.ts +62 -0
- package/build/facades/gallery.d.ts.map +1 -0
- package/build/facades/gallery.js +61 -0
- package/build/facades/gallery.js.map +1 -0
- package/build/facades/glasses.d.ts +141 -0
- package/build/facades/glasses.d.ts.map +1 -0
- package/build/facades/glasses.js +199 -0
- package/build/facades/glasses.js.map +1 -0
- package/build/facades/glassesSettings.d.ts +13 -0
- package/build/facades/glassesSettings.d.ts.map +1 -0
- package/build/facades/glassesSettings.js +54 -0
- package/build/facades/glassesSettings.js.map +1 -0
- package/build/facades/glassesWifi.d.ts +25 -0
- package/build/facades/glassesWifi.d.ts.map +1 -0
- package/build/facades/glassesWifi.js +57 -0
- package/build/facades/glassesWifi.js.map +1 -0
- package/build/facades/miniapps.d.ts +43 -0
- package/build/facades/miniapps.d.ts.map +1 -0
- package/build/facades/miniapps.js +49 -0
- package/build/facades/miniapps.js.map +1 -0
- package/build/facades/notifications.d.ts +13 -0
- package/build/facades/notifications.d.ts.map +1 -0
- package/build/facades/notifications.js +12 -0
- package/build/facades/notifications.js.map +1 -0
- package/build/facades/ota.d.ts +103 -0
- package/build/facades/ota.d.ts.map +1 -0
- package/build/facades/ota.js +156 -0
- package/build/facades/ota.js.map +1 -0
- package/build/facades/pairing.d.ts +114 -0
- package/build/facades/pairing.d.ts.map +1 -0
- package/build/facades/pairing.js +275 -0
- package/build/facades/pairing.js.map +1 -0
- package/build/facades/permissions.d.ts +33 -0
- package/build/facades/permissions.d.ts.map +1 -0
- package/build/facades/permissions.js +155 -0
- package/build/facades/permissions.js.map +1 -0
- package/build/facades/phoneNotifications.d.ts +21 -0
- package/build/facades/phoneNotifications.d.ts.map +1 -0
- package/build/facades/phoneNotifications.js +51 -0
- package/build/facades/phoneNotifications.js.map +1 -0
- package/build/facades/reports.d.ts +36 -0
- package/build/facades/reports.d.ts.map +1 -0
- package/build/facades/reports.js +134 -0
- package/build/facades/reports.js.map +1 -0
- package/build/facades/session.d.ts +21 -0
- package/build/facades/session.d.ts.map +1 -0
- package/build/facades/session.js +52 -0
- package/build/facades/session.js.map +1 -0
- package/build/facades/settings.d.ts +37 -0
- package/build/facades/settings.d.ts.map +1 -0
- package/build/facades/settings.js +55 -0
- package/build/facades/settings.js.map +1 -0
- package/build/facades/speech.d.ts +30 -0
- package/build/facades/speech.d.ts.map +1 -0
- package/build/facades/speech.js +37 -0
- package/build/facades/speech.js.map +1 -0
- package/build/index.d.ts +43 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +45 -0
- package/build/index.js.map +1 -0
- package/build/internal.d.ts +67 -0
- package/build/internal.d.ts.map +1 -0
- package/build/internal.js +90 -0
- package/build/internal.js.map +1 -0
- package/build/runtime/bootstrap.d.ts +83 -0
- package/build/runtime/bootstrap.d.ts.map +1 -0
- package/build/runtime/bootstrap.js +56 -0
- package/build/runtime/bootstrap.js.map +1 -0
- package/build/runtime/config.d.ts +146 -0
- package/build/runtime/config.d.ts.map +1 -0
- package/build/runtime/config.js +18 -0
- package/build/runtime/config.js.map +1 -0
- package/build/runtime/streamConfig.d.ts +4 -0
- package/build/runtime/streamConfig.d.ts.map +1 -0
- package/build/runtime/streamConfig.js +38 -0
- package/build/runtime/streamConfig.js.map +1 -0
- package/build/services/AppRegistry.d.ts +269 -0
- package/build/services/AppRegistry.d.ts.map +1 -0
- package/build/services/AppRegistry.js +1079 -0
- package/build/services/AppRegistry.js.map +1 -0
- package/build/services/AudioCloudUplink.d.ts +9 -0
- package/build/services/AudioCloudUplink.d.ts.map +1 -0
- package/build/services/AudioCloudUplink.js +48 -0
- package/build/services/AudioCloudUplink.js.map +1 -0
- package/build/services/AudioPlaybackService.d.ts +175 -0
- package/build/services/AudioPlaybackService.d.ts.map +1 -0
- package/build/services/AudioPlaybackService.js +705 -0
- package/build/services/AudioPlaybackService.js.map +1 -0
- package/build/services/AutomaticReportResult.d.ts +20 -0
- package/build/services/AutomaticReportResult.d.ts.map +1 -0
- package/build/services/AutomaticReportResult.js +29 -0
- package/build/services/AutomaticReportResult.js.map +1 -0
- package/build/services/BlobStore.d.ts +91 -0
- package/build/services/BlobStore.d.ts.map +1 -0
- package/build/services/BlobStore.js +668 -0
- package/build/services/BlobStore.js.map +1 -0
- package/build/services/CaptionsTesterReportService.d.ts +4 -0
- package/build/services/CaptionsTesterReportService.d.ts.map +1 -0
- package/build/services/CaptionsTesterReportService.js +80 -0
- package/build/services/CaptionsTesterReportService.js.map +1 -0
- package/build/services/CloudAudioSubscriptionSync.d.ts +24 -0
- package/build/services/CloudAudioSubscriptionSync.d.ts.map +1 -0
- package/build/services/CloudAudioSubscriptionSync.js +39 -0
- package/build/services/CloudAudioSubscriptionSync.js.map +1 -0
- package/build/services/CloudClientService.d.ts +143 -0
- package/build/services/CloudClientService.d.ts.map +1 -0
- package/build/services/CloudClientService.js +644 -0
- package/build/services/CloudClientService.js.map +1 -0
- package/build/services/CloudTranscriptE2EMetrics.d.ts +4 -0
- package/build/services/CloudTranscriptE2EMetrics.d.ts.map +1 -0
- package/build/services/CloudTranscriptE2EMetrics.js +24 -0
- package/build/services/CloudTranscriptE2EMetrics.js.map +1 -0
- package/build/services/ConnectionCoordinator.d.ts +51 -0
- package/build/services/ConnectionCoordinator.d.ts.map +1 -0
- package/build/services/ConnectionCoordinator.js +34 -0
- package/build/services/ConnectionCoordinator.js.map +1 -0
- package/build/services/DevServerBridge.d.ts +63 -0
- package/build/services/DevServerBridge.d.ts.map +1 -0
- package/build/services/DevServerBridge.js +294 -0
- package/build/services/DevServerBridge.js.map +1 -0
- package/build/services/DeviceEventRouter.d.ts +3 -0
- package/build/services/DeviceEventRouter.d.ts.map +1 -0
- package/build/services/DeviceEventRouter.js +190 -0
- package/build/services/DeviceEventRouter.js.map +1 -0
- package/build/services/DeviceStoreHydration.d.ts +38 -0
- package/build/services/DeviceStoreHydration.d.ts.map +1 -0
- package/build/services/DeviceStoreHydration.js +124 -0
- package/build/services/DeviceStoreHydration.js.map +1 -0
- package/build/services/DisplayProcessor.d.ts +223 -0
- package/build/services/DisplayProcessor.d.ts.map +1 -0
- package/build/services/DisplayProcessor.js +552 -0
- package/build/services/DisplayProcessor.js.map +1 -0
- package/build/services/GlassesReadiness.d.ts +41 -0
- package/build/services/GlassesReadiness.d.ts.map +1 -0
- package/build/services/GlassesReadiness.js +82 -0
- package/build/services/GlassesReadiness.js.map +1 -0
- package/build/services/GlassesSettingsSync.d.ts +33 -0
- package/build/services/GlassesSettingsSync.d.ts.map +1 -0
- package/build/services/GlassesSettingsSync.js +121 -0
- package/build/services/GlassesSettingsSync.js.map +1 -0
- package/build/services/GlassesStatusProjection.d.ts +3 -0
- package/build/services/GlassesStatusProjection.d.ts.map +1 -0
- package/build/services/GlassesStatusProjection.js +65 -0
- package/build/services/GlassesStatusProjection.js.map +1 -0
- package/build/services/HeadingService.d.ts +27 -0
- package/build/services/HeadingService.d.ts.map +1 -0
- package/build/services/HeadingService.js +96 -0
- package/build/services/HeadingService.js.map +1 -0
- package/build/services/LocalDisplayManager.d.ts +139 -0
- package/build/services/LocalDisplayManager.d.ts.map +1 -0
- package/build/services/LocalDisplayManager.js +579 -0
- package/build/services/LocalDisplayManager.js.map +1 -0
- package/build/services/LocalMiniappRuntime.d.ts +439 -0
- package/build/services/LocalMiniappRuntime.d.ts.map +1 -0
- package/build/services/LocalMiniappRuntime.js +3695 -0
- package/build/services/LocalMiniappRuntime.js.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts +57 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.js +137 -0
- package/build/services/LocalSttFallbackCoordinator.js.map +1 -0
- package/build/services/MentraJSCrashController.d.ts +97 -0
- package/build/services/MentraJSCrashController.d.ts.map +1 -0
- package/build/services/MentraJSCrashController.js +138 -0
- package/build/services/MentraJSCrashController.js.map +1 -0
- package/build/services/MentraJSCrashloopReportService.d.ts +9 -0
- package/build/services/MentraJSCrashloopReportService.d.ts.map +1 -0
- package/build/services/MentraJSCrashloopReportService.js +54 -0
- package/build/services/MentraJSCrashloopReportService.js.map +1 -0
- package/build/services/MentraJSLogPipeline.d.ts +87 -0
- package/build/services/MentraJSLogPipeline.d.ts.map +1 -0
- package/build/services/MentraJSLogPipeline.js +137 -0
- package/build/services/MentraJSLogPipeline.js.map +1 -0
- package/build/services/MentraJSRouter.d.ts +203 -0
- package/build/services/MentraJSRouter.d.ts.map +1 -0
- package/build/services/MentraJSRouter.js +480 -0
- package/build/services/MentraJSRouter.js.map +1 -0
- package/build/services/MentraUIRouter.d.ts +137 -0
- package/build/services/MentraUIRouter.d.ts.map +1 -0
- package/build/services/MentraUIRouter.js +210 -0
- package/build/services/MentraUIRouter.js.map +1 -0
- package/build/services/MicStateCoordinator.d.ts +37 -0
- package/build/services/MicStateCoordinator.d.ts.map +1 -0
- package/build/services/MicStateCoordinator.js +81 -0
- package/build/services/MicStateCoordinator.js.map +1 -0
- package/build/services/MiniappEngine.d.ts +31 -0
- package/build/services/MiniappEngine.d.ts.map +1 -0
- package/build/services/MiniappEngine.js +119 -0
- package/build/services/MiniappEngine.js.map +1 -0
- package/build/services/MiniappLauncher.d.ts +129 -0
- package/build/services/MiniappLauncher.d.ts.map +1 -0
- package/build/services/MiniappLauncher.js +291 -0
- package/build/services/MiniappLauncher.js.map +1 -0
- package/build/services/MiniappRunningRegistry.d.ts +24 -0
- package/build/services/MiniappRunningRegistry.d.ts.map +1 -0
- package/build/services/MiniappRunningRegistry.js +52 -0
- package/build/services/MiniappRunningRegistry.js.map +1 -0
- package/build/services/NativeHttpResponse.d.ts +3 -0
- package/build/services/NativeHttpResponse.d.ts.map +1 -0
- package/build/services/NativeHttpResponse.js +6 -0
- package/build/services/NativeHttpResponse.js.map +1 -0
- package/build/services/NavigationHandlers.d.ts +90 -0
- package/build/services/NavigationHandlers.d.ts.map +1 -0
- package/build/services/NavigationHandlers.js +379 -0
- package/build/services/NavigationHandlers.js.map +1 -0
- package/build/services/NavigationService.d.ts +254 -0
- package/build/services/NavigationService.d.ts.map +1 -0
- package/build/services/NavigationService.js +553 -0
- package/build/services/NavigationService.js.map +1 -0
- package/build/services/NotificationsEmitter.d.ts +28 -0
- package/build/services/NotificationsEmitter.d.ts.map +1 -0
- package/build/services/NotificationsEmitter.js +22 -0
- package/build/services/NotificationsEmitter.js.map +1 -0
- package/build/services/OfflineSpeechModelService.d.ts +33 -0
- package/build/services/OfflineSpeechModelService.d.ts.map +1 -0
- package/build/services/OfflineSpeechModelService.js +136 -0
- package/build/services/OfflineSpeechModelService.js.map +1 -0
- package/build/services/OtaInstallCoordinator.d.ts +195 -0
- package/build/services/OtaInstallCoordinator.d.ts.map +1 -0
- package/build/services/OtaInstallCoordinator.js +1047 -0
- package/build/services/OtaInstallCoordinator.js.map +1 -0
- package/build/services/OtaService.d.ts +3 -0
- package/build/services/OtaService.d.ts.map +1 -0
- package/build/services/OtaService.js +65 -0
- package/build/services/OtaService.js.map +1 -0
- package/build/services/OtaUpdateCheckService.d.ts +65 -0
- package/build/services/OtaUpdateCheckService.d.ts.map +1 -0
- package/build/services/OtaUpdateCheckService.js +260 -0
- package/build/services/OtaUpdateCheckService.js.map +1 -0
- package/build/services/PairingIdentity.d.ts +80 -0
- package/build/services/PairingIdentity.d.ts.map +1 -0
- package/build/services/PairingIdentity.js +145 -0
- package/build/services/PairingIdentity.js.map +1 -0
- package/build/services/PhoneCalendarHelpers.d.ts +32 -0
- package/build/services/PhoneCalendarHelpers.d.ts.map +1 -0
- package/build/services/PhoneCalendarHelpers.js +157 -0
- package/build/services/PhoneCalendarHelpers.js.map +1 -0
- package/build/services/PhoneCalendarService.d.ts +5 -0
- package/build/services/PhoneCalendarService.d.ts.map +1 -0
- package/build/services/PhoneCalendarService.js +24 -0
- package/build/services/PhoneCalendarService.js.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts +28 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.js +180 -0
- package/build/services/PhoneCameraFovCoordinator.js.map +1 -0
- package/build/services/PhoneLocationService.d.ts +36 -0
- package/build/services/PhoneLocationService.d.ts.map +1 -0
- package/build/services/PhoneLocationService.js +115 -0
- package/build/services/PhoneLocationService.js.map +1 -0
- package/build/services/PhoneNotificationsSync.d.ts +3 -0
- package/build/services/PhoneNotificationsSync.d.ts.map +1 -0
- package/build/services/PhoneNotificationsSync.js +35 -0
- package/build/services/PhoneNotificationsSync.js.map +1 -0
- package/build/services/PhonePhotoCoordinator.d.ts +103 -0
- package/build/services/PhonePhotoCoordinator.d.ts.map +1 -0
- package/build/services/PhonePhotoCoordinator.js +326 -0
- package/build/services/PhonePhotoCoordinator.js.map +1 -0
- package/build/services/PhoneStreamCoordinator.d.ts +168 -0
- package/build/services/PhoneStreamCoordinator.d.ts.map +1 -0
- package/build/services/PhoneStreamCoordinator.js +632 -0
- package/build/services/PhoneStreamCoordinator.js.map +1 -0
- package/build/services/PhoneVideoCoordinator.d.ts +50 -0
- package/build/services/PhoneVideoCoordinator.d.ts.map +1 -0
- package/build/services/PhoneVideoCoordinator.js +147 -0
- package/build/services/PhoneVideoCoordinator.js.map +1 -0
- package/build/services/STTModelManager.d.ts +65 -0
- package/build/services/STTModelManager.d.ts.map +1 -0
- package/build/services/STTModelManager.js +292 -0
- package/build/services/STTModelManager.js.map +1 -0
- package/build/services/SceneRenderer.d.ts +90 -0
- package/build/services/SceneRenderer.d.ts.map +1 -0
- package/build/services/SceneRenderer.js +248 -0
- package/build/services/SceneRenderer.js.map +1 -0
- package/build/services/SentenceTtsPipeline.d.ts +31 -0
- package/build/services/SentenceTtsPipeline.d.ts.map +1 -0
- package/build/services/SentenceTtsPipeline.js +67 -0
- package/build/services/SentenceTtsPipeline.js.map +1 -0
- package/build/services/StreamLifecycleController.d.ts +67 -0
- package/build/services/StreamLifecycleController.d.ts.map +1 -0
- package/build/services/StreamLifecycleController.js +152 -0
- package/build/services/StreamLifecycleController.js.map +1 -0
- package/build/services/TTSModelManager.d.ts +90 -0
- package/build/services/TTSModelManager.d.ts.map +1 -0
- package/build/services/TTSModelManager.js +366 -0
- package/build/services/TTSModelManager.js.map +1 -0
- package/build/services/TranscriptionRouting.d.ts +12 -0
- package/build/services/TranscriptionRouting.d.ts.map +1 -0
- package/build/services/TranscriptionRouting.js +24 -0
- package/build/services/TranscriptionRouting.js.map +1 -0
- package/build/services/WebviewBridge.d.ts +22 -0
- package/build/services/WebviewBridge.d.ts.map +1 -0
- package/build/services/WebviewBridge.js +47 -0
- package/build/services/WebviewBridge.js.map +1 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.d.ts +17 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.d.ts.map +1 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.js +43 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.js.map +1 -0
- package/build/services/asg/asgCameraApi.d.ts +205 -0
- package/build/services/asg/asgCameraApi.d.ts.map +1 -0
- package/build/services/asg/asgCameraApi.js +1410 -0
- package/build/services/asg/asgCameraApi.js.map +1 -0
- package/build/services/asg/cameraRollExportCoordinator.d.ts +60 -0
- package/build/services/asg/cameraRollExportCoordinator.d.ts.map +1 -0
- package/build/services/asg/cameraRollExportCoordinator.js +618 -0
- package/build/services/asg/cameraRollExportCoordinator.js.map +1 -0
- package/build/services/asg/cameraRollExportLedger.d.ts +44 -0
- package/build/services/asg/cameraRollExportLedger.d.ts.map +1 -0
- package/build/services/asg/cameraRollExportLedger.js +78 -0
- package/build/services/asg/cameraRollExportLedger.js.map +1 -0
- package/build/services/asg/galleryMediaValidation.d.ts +29 -0
- package/build/services/asg/galleryMediaValidation.d.ts.map +1 -0
- package/build/services/asg/galleryMediaValidation.js +149 -0
- package/build/services/asg/galleryMediaValidation.js.map +1 -0
- package/build/services/asg/galleryNotices.d.ts +33 -0
- package/build/services/asg/galleryNotices.d.ts.map +1 -0
- package/build/services/asg/galleryNotices.js +29 -0
- package/build/services/asg/galleryNotices.js.map +1 -0
- package/build/services/asg/galleryPathMigration.d.ts +3 -0
- package/build/services/asg/galleryPathMigration.d.ts.map +1 -0
- package/build/services/asg/galleryPathMigration.js +26 -0
- package/build/services/asg/galleryPathMigration.js.map +1 -0
- package/build/services/asg/gallerySettingsService.d.ts +20 -0
- package/build/services/asg/gallerySettingsService.d.ts.map +1 -0
- package/build/services/asg/gallerySettingsService.js +53 -0
- package/build/services/asg/gallerySettingsService.js.map +1 -0
- package/build/services/asg/gallerySyncNotifications.d.ts +56 -0
- package/build/services/asg/gallerySyncNotifications.d.ts.map +1 -0
- package/build/services/asg/gallerySyncNotifications.js +198 -0
- package/build/services/asg/gallerySyncNotifications.js.map +1 -0
- package/build/services/asg/gallerySyncService.d.ts +137 -0
- package/build/services/asg/gallerySyncService.d.ts.map +1 -0
- package/build/services/asg/gallerySyncService.js +1933 -0
- package/build/services/asg/gallerySyncService.js.map +1 -0
- package/build/services/asg/galleryTransferLedger.d.ts +58 -0
- package/build/services/asg/galleryTransferLedger.d.ts.map +1 -0
- package/build/services/asg/galleryTransferLedger.js +225 -0
- package/build/services/asg/galleryTransferLedger.js.map +1 -0
- package/build/services/asg/localNetworkTransport.d.ts +15 -0
- package/build/services/asg/localNetworkTransport.d.ts.map +1 -0
- package/build/services/asg/localNetworkTransport.js +144 -0
- package/build/services/asg/localNetworkTransport.js.map +1 -0
- package/build/services/asg/localStorageService.d.ts +146 -0
- package/build/services/asg/localStorageService.d.ts.map +1 -0
- package/build/services/asg/localStorageService.js +572 -0
- package/build/services/asg/localStorageService.js.map +1 -0
- package/build/services/asg/mediaProcessingQueue.d.ts +70 -0
- package/build/services/asg/mediaProcessingQueue.d.ts.map +1 -0
- package/build/services/asg/mediaProcessingQueue.js +451 -0
- package/build/services/asg/mediaProcessingQueue.js.map +1 -0
- package/build/services/asgOtaVersionUrl.d.ts +2 -0
- package/build/services/asgOtaVersionUrl.d.ts.map +1 -0
- package/build/services/asgOtaVersionUrl.js +36 -0
- package/build/services/asgOtaVersionUrl.js.map +1 -0
- package/build/services/blobPaths.d.ts +31 -0
- package/build/services/blobPaths.d.ts.map +1 -0
- package/build/services/blobPaths.js +86 -0
- package/build/services/blobPaths.js.map +1 -0
- package/build/services/cloudStreamApi.d.ts +59 -0
- package/build/services/cloudStreamApi.d.ts.map +1 -0
- package/build/services/cloudStreamApi.js +81 -0
- package/build/services/cloudStreamApi.js.map +1 -0
- package/build/services/gallerySyncClock.d.ts +17 -0
- package/build/services/gallerySyncClock.d.ts.map +1 -0
- package/build/services/gallerySyncClock.js +21 -0
- package/build/services/gallerySyncClock.js.map +1 -0
- package/build/services/glassesClockSync.d.ts +20 -0
- package/build/services/glassesClockSync.d.ts.map +1 -0
- package/build/services/glassesClockSync.js +97 -0
- package/build/services/glassesClockSync.js.map +1 -0
- package/build/services/manifestVersionGate.d.ts +28 -0
- package/build/services/manifestVersionGate.d.ts.map +1 -0
- package/build/services/manifestVersionGate.js +41 -0
- package/build/services/manifestVersionGate.js.map +1 -0
- package/build/services/mentraUiShim.d.ts +38 -0
- package/build/services/mentraUiShim.d.ts.map +1 -0
- package/build/services/mentraUiShim.js +360 -0
- package/build/services/mentraUiShim.js.map +1 -0
- package/build/services/navigation/roadNameResolver.d.ts +67 -0
- package/build/services/navigation/roadNameResolver.d.ts.map +1 -0
- package/build/services/navigation/roadNameResolver.js +96 -0
- package/build/services/navigation/roadNameResolver.js.map +1 -0
- package/build/services/navigation/routesApiCodec.d.ts +38 -0
- package/build/services/navigation/routesApiCodec.d.ts.map +1 -0
- package/build/services/navigation/routesApiCodec.js +68 -0
- package/build/services/navigation/routesApiCodec.js.map +1 -0
- package/build/services/otaDisplayState.d.ts +42 -0
- package/build/services/otaDisplayState.d.ts.map +1 -0
- package/build/services/otaDisplayState.js +92 -0
- package/build/services/otaDisplayState.js.map +1 -0
- package/build/services/otaInstallPolicy.d.ts +81 -0
- package/build/services/otaInstallPolicy.d.ts.map +1 -0
- package/build/services/otaInstallPolicy.js +96 -0
- package/build/services/otaInstallPolicy.js.map +1 -0
- package/build/services/otaLegacyMapping.d.ts +22 -0
- package/build/services/otaLegacyMapping.d.ts.map +1 -0
- package/build/services/otaLegacyMapping.js +56 -0
- package/build/services/otaLegacyMapping.js.map +1 -0
- package/build/services/slimStreamStatus.d.ts +7 -0
- package/build/services/slimStreamStatus.d.ts.map +1 -0
- package/build/services/slimStreamStatus.js +26 -0
- package/build/services/slimStreamStatus.js.map +1 -0
- package/build/stores/apps.d.ts +104 -0
- package/build/stores/apps.d.ts.map +1 -0
- package/build/stores/apps.js +492 -0
- package/build/stores/apps.js.map +1 -0
- package/build/stores/bluetoothSettingKeys.d.ts +4 -0
- package/build/stores/bluetoothSettingKeys.d.ts.map +1 -0
- package/build/stores/bluetoothSettingKeys.js +31 -0
- package/build/stores/bluetoothSettingKeys.js.map +1 -0
- package/build/stores/cloudClientStatus.d.ts +9 -0
- package/build/stores/cloudClientStatus.d.ts.map +1 -0
- package/build/stores/cloudClientStatus.js +24 -0
- package/build/stores/cloudClientStatus.js.map +1 -0
- package/build/stores/connection.d.ts +22 -0
- package/build/stores/connection.d.ts.map +1 -0
- package/build/stores/connection.js +43 -0
- package/build/stores/connection.js.map +1 -0
- package/build/stores/core.d.ts +15 -0
- package/build/stores/core.d.ts.map +1 -0
- package/build/stores/core.js +21 -0
- package/build/stores/core.js.map +1 -0
- package/build/stores/display.d.ts +24 -0
- package/build/stores/display.d.ts.map +1 -0
- package/build/stores/display.js +96 -0
- package/build/stores/display.js.map +1 -0
- package/build/stores/gallerySync.d.ts +101 -0
- package/build/stores/gallerySync.d.ts.map +1 -0
- package/build/stores/gallerySync.js +217 -0
- package/build/stores/gallerySync.js.map +1 -0
- package/build/stores/glasses.d.ts +62 -0
- package/build/stores/glasses.d.ts.map +1 -0
- package/build/stores/glasses.js +203 -0
- package/build/stores/glasses.js.map +1 -0
- package/build/stores/settings.d.ts +37 -0
- package/build/stores/settings.d.ts.map +1 -0
- package/build/stores/settings.js +922 -0
- package/build/stores/settings.js.map +1 -0
- package/build/types/applet.d.ts +96 -0
- package/build/types/applet.d.ts.map +1 -0
- package/build/types/applet.js +5 -0
- package/build/types/applet.js.map +1 -0
- package/build/types/asg.d.ts +53 -0
- package/build/types/asg.d.ts.map +1 -0
- package/build/types/asg.js +2 -0
- package/build/types/asg.js.map +1 -0
- package/build/types/capabilities/even-realities-g1.d.ts +12 -0
- package/build/types/capabilities/even-realities-g1.d.ts.map +1 -0
- package/build/types/capabilities/even-realities-g1.js +55 -0
- package/build/types/capabilities/even-realities-g1.js.map +1 -0
- package/build/types/capabilities/even-realities-g2.d.ts +12 -0
- package/build/types/capabilities/even-realities-g2.d.ts.map +1 -0
- package/build/types/capabilities/even-realities-g2.js +75 -0
- package/build/types/capabilities/even-realities-g2.js.map +1 -0
- package/build/types/capabilities/mentra-display.d.ts +12 -0
- package/build/types/capabilities/mentra-display.d.ts.map +1 -0
- package/build/types/capabilities/mentra-display.js +63 -0
- package/build/types/capabilities/mentra-display.js.map +1 -0
- package/build/types/capabilities/mentra-live.d.ts +12 -0
- package/build/types/capabilities/mentra-live.d.ts.map +1 -0
- package/build/types/capabilities/mentra-live.js +92 -0
- package/build/types/capabilities/mentra-live.js.map +1 -0
- package/build/types/capabilities/none.d.ts +13 -0
- package/build/types/capabilities/none.d.ts.map +1 -0
- package/build/types/capabilities/none.js +65 -0
- package/build/types/capabilities/none.js.map +1 -0
- package/build/types/capabilities/simulated-glasses.d.ts +13 -0
- package/build/types/capabilities/simulated-glasses.d.ts.map +1 -0
- package/build/types/capabilities/simulated-glasses.js +65 -0
- package/build/types/capabilities/simulated-glasses.js.map +1 -0
- package/build/types/capabilities/vuzix-z100.d.ts +12 -0
- package/build/types/capabilities/vuzix-z100.d.ts.map +1 -0
- package/build/types/capabilities/vuzix-z100.js +52 -0
- package/build/types/capabilities/vuzix-z100.js.map +1 -0
- package/build/types/enums.d.ts +40 -0
- package/build/types/enums.d.ts.map +1 -0
- package/build/types/enums.js +44 -0
- package/build/types/enums.js.map +1 -0
- package/build/types/hardware.d.ts +160 -0
- package/build/types/hardware.d.ts.map +1 -0
- package/build/types/hardware.js +36 -0
- package/build/types/hardware.js.map +1 -0
- package/build/types/index.d.ts +11 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +10 -0
- package/build/types/index.js.map +1 -0
- package/build/utils/GlobalEventEmitter.d.ts +10 -0
- package/build/utils/GlobalEventEmitter.d.ts.map +1 -0
- package/build/utils/GlobalEventEmitter.js +13 -0
- package/build/utils/GlobalEventEmitter.js.map +1 -0
- package/build/utils/cloudClient/RnUdpAdapter.d.ts +3 -0
- package/build/utils/cloudClient/RnUdpAdapter.d.ts.map +1 -0
- package/build/utils/cloudClient/RnUdpAdapter.js +41 -0
- package/build/utils/cloudClient/RnUdpAdapter.js.map +1 -0
- package/build/utils/cloudClient/cloudSecureStore.d.ts +3 -0
- package/build/utils/cloudClient/cloudSecureStore.d.ts.map +1 -0
- package/build/utils/cloudClient/cloudSecureStore.js +26 -0
- package/build/utils/cloudClient/cloudSecureStore.js.map +1 -0
- package/build/utils/debouncedPatch.d.ts +6 -0
- package/build/utils/debouncedPatch.d.ts.map +1 -0
- package/build/utils/debouncedPatch.js +25 -0
- package/build/utils/debouncedPatch.js.map +1 -0
- package/build/utils/devLogging.d.ts +26 -0
- package/build/utils/devLogging.d.ts.map +1 -0
- package/build/utils/devLogging.js +116 -0
- package/build/utils/devLogging.js.map +1 -0
- package/build/utils/devMiniappLaunch.d.ts +44 -0
- package/build/utils/devMiniappLaunch.d.ts.map +1 -0
- package/build/utils/devMiniappLaunch.js +52 -0
- package/build/utils/devMiniappLaunch.js.map +1 -0
- package/build/utils/diagnosticContext.d.ts +3 -0
- package/build/utils/diagnosticContext.d.ts.map +1 -0
- package/build/utils/diagnosticContext.js +119 -0
- package/build/utils/diagnosticContext.js.map +1 -0
- package/build/utils/display/composer/ColumnComposer.d.ts +131 -0
- package/build/utils/display/composer/ColumnComposer.d.ts.map +1 -0
- package/build/utils/display/composer/ColumnComposer.js +204 -0
- package/build/utils/display/composer/ColumnComposer.js.map +1 -0
- package/build/utils/display/composer/index.d.ts +9 -0
- package/build/utils/display/composer/index.d.ts.map +1 -0
- package/build/utils/display/composer/index.js +9 -0
- package/build/utils/display/composer/index.js.map +1 -0
- package/build/utils/display/helpers/DisplayHelpers.d.ts +165 -0
- package/build/utils/display/helpers/DisplayHelpers.d.ts.map +1 -0
- package/build/utils/display/helpers/DisplayHelpers.js +312 -0
- package/build/utils/display/helpers/DisplayHelpers.js.map +1 -0
- package/build/utils/display/helpers/ScrollView.d.ts +183 -0
- package/build/utils/display/helpers/ScrollView.d.ts.map +1 -0
- package/build/utils/display/helpers/ScrollView.js +257 -0
- package/build/utils/display/helpers/ScrollView.js.map +1 -0
- package/build/utils/display/helpers/index.d.ts +11 -0
- package/build/utils/display/helpers/index.d.ts.map +1 -0
- package/build/utils/display/helpers/index.js +10 -0
- package/build/utils/display/helpers/index.js.map +1 -0
- package/build/utils/display/index.d.ts +174 -0
- package/build/utils/display/index.d.ts.map +1 -0
- package/build/utils/display/index.js +185 -0
- package/build/utils/display/index.js.map +1 -0
- package/build/utils/display/measurer/TextMeasurer.d.ts +160 -0
- package/build/utils/display/measurer/TextMeasurer.d.ts.map +1 -0
- package/build/utils/display/measurer/TextMeasurer.js +273 -0
- package/build/utils/display/measurer/TextMeasurer.js.map +1 -0
- package/build/utils/display/measurer/index.d.ts +10 -0
- package/build/utils/display/measurer/index.d.ts.map +1 -0
- package/build/utils/display/measurer/index.js +11 -0
- package/build/utils/display/measurer/index.js.map +1 -0
- package/build/utils/display/measurer/script-detection.d.ts +53 -0
- package/build/utils/display/measurer/script-detection.d.ts.map +1 -0
- package/build/utils/display/measurer/script-detection.js +184 -0
- package/build/utils/display/measurer/script-detection.js.map +1 -0
- package/build/utils/display/profiles/g1.d.ts +33 -0
- package/build/utils/display/profiles/g1.d.ts.map +1 -0
- package/build/utils/display/profiles/g1.js +213 -0
- package/build/utils/display/profiles/g1.js.map +1 -0
- package/build/utils/display/profiles/g2.d.ts +13 -0
- package/build/utils/display/profiles/g2.d.ts.map +1 -0
- package/build/utils/display/profiles/g2.js +34 -0
- package/build/utils/display/profiles/g2.js.map +1 -0
- package/build/utils/display/profiles/index.d.ts +12 -0
- package/build/utils/display/profiles/index.d.ts.map +1 -0
- package/build/utils/display/profiles/index.js +15 -0
- package/build/utils/display/profiles/index.js.map +1 -0
- package/build/utils/display/profiles/nex.d.ts +10 -0
- package/build/utils/display/profiles/nex.d.ts.map +1 -0
- package/build/utils/display/profiles/nex.js +150 -0
- package/build/utils/display/profiles/nex.js.map +1 -0
- package/build/utils/display/profiles/types.d.ts +103 -0
- package/build/utils/display/profiles/types.d.ts.map +1 -0
- package/build/utils/display/profiles/types.js +2 -0
- package/build/utils/display/profiles/types.js.map +1 -0
- package/build/utils/display/profiles/z100.d.ts +33 -0
- package/build/utils/display/profiles/z100.d.ts.map +1 -0
- package/build/utils/display/profiles/z100.js +182 -0
- package/build/utils/display/profiles/z100.js.map +1 -0
- package/build/utils/display/scene/degrade.d.ts +25 -0
- package/build/utils/display/scene/degrade.d.ts.map +1 -0
- package/build/utils/display/scene/degrade.js +64 -0
- package/build/utils/display/scene/degrade.js.map +1 -0
- package/build/utils/display/scene/differ.d.ts +38 -0
- package/build/utils/display/scene/differ.d.ts.map +1 -0
- package/build/utils/display/scene/differ.js +107 -0
- package/build/utils/display/scene/differ.js.map +1 -0
- package/build/utils/display/scene/index.d.ts +10 -0
- package/build/utils/display/scene/index.d.ts.map +1 -0
- package/build/utils/display/scene/index.js +6 -0
- package/build/utils/display/scene/index.js.map +1 -0
- package/build/utils/display/scene/process.d.ts +35 -0
- package/build/utils/display/scene/process.d.ts.map +1 -0
- package/build/utils/display/scene/process.js +187 -0
- package/build/utils/display/scene/process.js.map +1 -0
- package/build/utils/display/scene/store.d.ts +48 -0
- package/build/utils/display/scene/store.d.ts.map +1 -0
- package/build/utils/display/scene/store.js +0 -0
- package/build/utils/display/scene/store.js.map +1 -0
- package/build/utils/display/scene/types.d.ts +120 -0
- package/build/utils/display/scene/types.d.ts.map +1 -0
- package/build/utils/display/scene/types.js +0 -0
- package/build/utils/display/scene/types.js.map +1 -0
- package/build/utils/display/wrapper/TextWrapper.d.ts +102 -0
- package/build/utils/display/wrapper/TextWrapper.d.ts.map +1 -0
- package/build/utils/display/wrapper/TextWrapper.js +471 -0
- package/build/utils/display/wrapper/TextWrapper.js.map +1 -0
- package/build/utils/display/wrapper/index.d.ts +12 -0
- package/build/utils/display/wrapper/index.d.ts.map +1 -0
- package/build/utils/display/wrapper/index.js +12 -0
- package/build/utils/display/wrapper/index.js.map +1 -0
- package/build/utils/display/wrapper/types.d.ts +75 -0
- package/build/utils/display/wrapper/types.d.ts.map +1 -0
- package/build/utils/display/wrapper/types.js +11 -0
- package/build/utils/display/wrapper/types.js.map +1 -0
- package/build/utils/e2eMetrics.d.ts +6 -0
- package/build/utils/e2eMetrics.d.ts.map +1 -0
- package/build/utils/e2eMetrics.js +27 -0
- package/build/utils/e2eMetrics.js.map +1 -0
- package/build/utils/hardware/hardware.d.ts +42 -0
- package/build/utils/hardware/hardware.d.ts.map +1 -0
- package/build/utils/hardware/hardware.js +127 -0
- package/build/utils/hardware/hardware.js.map +1 -0
- package/build/utils/hardware/index.d.ts +2 -0
- package/build/utils/hardware/index.d.ts.map +1 -0
- package/build/utils/hardware/index.js +2 -0
- package/build/utils/hardware/index.js.map +1 -0
- package/build/utils/miniappGlobals.d.ts +60 -0
- package/build/utils/miniappGlobals.d.ts.map +1 -0
- package/build/utils/miniappGlobals.js +224 -0
- package/build/utils/miniappGlobals.js.map +1 -0
- package/build/utils/permissions/MediaLibraryPermissions.d.ts +45 -0
- package/build/utils/permissions/MediaLibraryPermissions.d.ts.map +1 -0
- package/build/utils/permissions/MediaLibraryPermissions.js +145 -0
- package/build/utils/permissions/MediaLibraryPermissions.js.map +1 -0
- package/build/utils/permissions/galleryDisplayName.d.ts +8 -0
- package/build/utils/permissions/galleryDisplayName.d.ts.map +1 -0
- package/build/utils/permissions/galleryDisplayName.js +25 -0
- package/build/utils/permissions/galleryDisplayName.js.map +1 -0
- package/build/utils/storage/index.d.ts +3 -0
- package/build/utils/storage/index.d.ts.map +1 -0
- package/build/utils/storage/index.js +3 -0
- package/build/utils/storage/index.js.map +1 -0
- package/build/utils/storage/storage.d.ts +24 -0
- package/build/utils/storage/storage.d.ts.map +1 -0
- package/build/utils/storage/storage.js +85 -0
- package/build/utils/storage/storage.js.map +1 -0
- package/build/utils/storage/zip.d.ts +3 -0
- package/build/utils/storage/zip.d.ts.map +1 -0
- package/build/utils/storage/zip.js +14 -0
- package/build/utils/storage/zip.js.map +1 -0
- package/build/utils/timers/index.d.ts +3 -0
- package/build/utils/timers/index.d.ts.map +1 -0
- package/build/utils/timers/index.js +3 -0
- package/build/utils/timers/index.js.map +1 -0
- package/build/utils/timers/timers.d.ts +9 -0
- package/build/utils/timers/timers.d.ts.map +1 -0
- package/build/utils/timers/timers.js +105 -0
- package/build/utils/timers/timers.js.map +1 -0
- package/package.json +120 -0
- package/src/devtools.ts +13 -0
- package/src/engine.ts +173 -0
- package/src/facades/dev.ts +198 -0
- package/src/facades/display.ts +17 -0
- package/src/facades/displayMirror.ts +33 -0
- package/src/facades/gallery.ts +69 -0
- package/src/facades/glasses.ts +206 -0
- package/src/facades/glassesSettings.ts +56 -0
- package/src/facades/glassesWifi.ts +68 -0
- package/src/facades/miniapps.ts +55 -0
- package/src/facades/notifications.ts +15 -0
- package/src/facades/ota.ts +174 -0
- package/src/facades/pairing.ts +329 -0
- package/src/facades/permissions.ts +165 -0
- package/src/facades/phoneNotifications.ts +50 -0
- package/src/facades/reports.ts +185 -0
- package/src/facades/session.ts +55 -0
- package/src/facades/settings.ts +57 -0
- package/src/facades/speech.ts +38 -0
- package/src/index.ts +191 -0
- package/src/internal.ts +159 -0
- package/src/runtime/bootstrap.ts +118 -0
- package/src/runtime/config.ts +147 -0
- package/src/runtime/streamConfig.ts +34 -0
- package/src/services/AppRegistry.ts +1190 -0
- package/src/services/AudioCloudUplink.ts +50 -0
- package/src/services/AudioPlaybackService.ts +813 -0
- package/src/services/AutomaticReportResult.ts +48 -0
- package/src/services/BlobStore.ts +746 -0
- package/src/services/CaptionsTesterReportService.ts +107 -0
- package/src/services/CloudAudioSubscriptionSync.ts +41 -0
- package/src/services/CloudClientService.ts +689 -0
- package/src/services/CloudTranscriptE2EMetrics.ts +27 -0
- package/src/services/ConnectionCoordinator.ts +65 -0
- package/src/services/DevServerBridge.ts +332 -0
- package/src/services/DeviceEventRouter.ts +238 -0
- package/src/services/DeviceStoreHydration.ts +130 -0
- package/src/services/DisplayProcessor.ts +775 -0
- package/src/services/GlassesReadiness.ts +103 -0
- package/src/services/GlassesSettingsSync.ts +134 -0
- package/src/services/GlassesStatusProjection.ts +73 -0
- package/src/services/HeadingService.ts +98 -0
- package/src/services/LocalDisplayManager.ts +703 -0
- package/src/services/LocalMiniappRuntime.ts +4213 -0
- package/src/services/LocalSttFallbackCoordinator.ts +147 -0
- package/src/services/MentraJSCrashController.ts +189 -0
- package/src/services/MentraJSCrashloopReportService.ts +66 -0
- package/src/services/MentraJSLogPipeline.ts +166 -0
- package/src/services/MentraJSRouter.ts +557 -0
- package/src/services/MentraUIRouter.ts +244 -0
- package/src/services/MicStateCoordinator.ts +94 -0
- package/src/services/MiniappEngine.ts +143 -0
- package/src/services/MiniappLauncher.ts +340 -0
- package/src/services/MiniappRunningRegistry.ts +57 -0
- package/src/services/NativeHttpResponse.ts +6 -0
- package/src/services/NavigationHandlers.ts +423 -0
- package/src/services/NavigationService.ts +731 -0
- package/src/services/NotificationsEmitter.ts +48 -0
- package/src/services/OfflineSpeechModelService.ts +168 -0
- package/src/services/OtaInstallCoordinator.ts +1205 -0
- package/src/services/OtaService.ts +83 -0
- package/src/services/OtaUpdateCheckService.ts +386 -0
- package/src/services/PairingIdentity.ts +154 -0
- package/src/services/PhoneCalendarHelpers.ts +212 -0
- package/src/services/PhoneCalendarService.ts +42 -0
- package/src/services/PhoneCameraFovCoordinator.ts +195 -0
- package/src/services/PhoneLocationService.ts +122 -0
- package/src/services/PhoneNotificationsSync.ts +44 -0
- package/src/services/PhonePhotoCoordinator.ts +409 -0
- package/src/services/PhoneStreamCoordinator.ts +777 -0
- package/src/services/PhoneVideoCoordinator.ts +189 -0
- package/src/services/STTModelManager.ts +360 -0
- package/src/services/SceneRenderer.ts +292 -0
- package/src/services/SentenceTtsPipeline.ts +106 -0
- package/src/services/StreamLifecycleController.ts +213 -0
- package/src/services/TTSModelManager.ts +466 -0
- package/src/services/TranscriptionRouting.ts +37 -0
- package/src/services/WebviewBridge.ts +50 -0
- package/src/services/asg/GalleryMediaIntegrityReportService.ts +70 -0
- package/src/services/asg/asgCameraApi.ts +1695 -0
- package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
- package/src/services/asg/cameraRollExportLedger.ts +122 -0
- package/src/services/asg/galleryMediaValidation.ts +183 -0
- package/src/services/asg/galleryNotices.ts +61 -0
- package/src/services/asg/galleryPathMigration.ts +22 -0
- package/src/services/asg/gallerySettingsService.ts +68 -0
- package/src/services/asg/gallerySyncNotifications.ts +236 -0
- package/src/services/asg/gallerySyncService.ts +2269 -0
- package/src/services/asg/galleryTransferLedger.ts +312 -0
- package/src/services/asg/localNetworkTransport.ts +173 -0
- package/src/services/asg/localStorageService.ts +652 -0
- package/src/services/asg/mediaProcessingQueue.ts +518 -0
- package/src/services/asgOtaVersionUrl.ts +41 -0
- package/src/services/blobPaths.ts +86 -0
- package/src/services/cloudStreamApi.ts +154 -0
- package/src/services/gallerySyncClock.ts +39 -0
- package/src/services/glassesClockSync.ts +115 -0
- package/src/services/manifestVersionGate.ts +43 -0
- package/src/services/mentraUiShim.ts +366 -0
- package/src/services/navigation/roadNameResolver.ts +112 -0
- package/src/services/navigation/routesApiCodec.ts +69 -0
- package/src/services/otaDisplayState.ts +115 -0
- package/src/services/otaInstallPolicy.ts +106 -0
- package/src/services/otaLegacyMapping.ts +71 -0
- package/src/services/slimStreamStatus.ts +28 -0
- package/src/stores/apps.ts +614 -0
- package/src/stores/bluetoothSettingKeys.ts +36 -0
- package/src/stores/cloudClientStatus.ts +37 -0
- package/src/stores/connection.ts +69 -0
- package/src/stores/core.ts +32 -0
- package/src/stores/display.ts +121 -0
- package/src/stores/gallerySync.ts +380 -0
- package/src/stores/glasses.ts +309 -0
- package/src/stores/settings.ts +1001 -0
- package/src/types/applet.ts +112 -0
- package/src/types/asg.ts +58 -0
- package/src/types/capabilities/even-realities-g1.ts +67 -0
- package/src/types/capabilities/even-realities-g2.ts +88 -0
- package/src/types/capabilities/mentra-display.ts +75 -0
- package/src/types/capabilities/mentra-live.ts +103 -0
- package/src/types/capabilities/none.ts +76 -0
- package/src/types/capabilities/simulated-glasses.ts +76 -0
- package/src/types/capabilities/vuzix-z100.ts +64 -0
- package/src/types/enums.ts +43 -0
- package/src/types/hardware.ts +203 -0
- package/src/types/index.ts +37 -0
- package/src/utils/GlobalEventEmitter.ts +14 -0
- package/src/utils/cloudClient/RnUdpAdapter.ts +47 -0
- package/src/utils/cloudClient/cloudSecureStore.ts +28 -0
- package/src/utils/debouncedPatch.ts +28 -0
- package/src/utils/devLogging.ts +140 -0
- package/src/utils/devMiniappLaunch.ts +68 -0
- package/src/utils/diagnosticContext.ts +155 -0
- package/src/utils/display/composer/ColumnComposer.ts +285 -0
- package/src/utils/display/composer/index.ts +15 -0
- package/src/utils/display/helpers/DisplayHelpers.ts +413 -0
- package/src/utils/display/helpers/ScrollView.ts +337 -0
- package/src/utils/display/helpers/index.ts +14 -0
- package/src/utils/display/index.ts +273 -0
- package/src/utils/display/measurer/TextMeasurer.ts +346 -0
- package/src/utils/display/measurer/index.ts +21 -0
- package/src/utils/display/measurer/script-detection.ts +218 -0
- package/src/utils/display/profiles/g1.ts +236 -0
- package/src/utils/display/profiles/g2.ts +39 -0
- package/src/utils/display/profiles/index.ts +28 -0
- package/src/utils/display/profiles/nex.ts +166 -0
- package/src/utils/display/profiles/types.ts +132 -0
- package/src/utils/display/profiles/z100.ts +198 -0
- package/src/utils/display/scene/degrade.ts +80 -0
- package/src/utils/display/scene/differ.ts +128 -0
- package/src/utils/display/scene/index.ts +21 -0
- package/src/utils/display/scene/process.ts +214 -0
- package/src/utils/display/scene/store.ts +0 -0
- package/src/utils/display/scene/types.ts +0 -0
- package/src/utils/display/wrapper/TextWrapper.ts +546 -0
- package/src/utils/display/wrapper/index.ts +15 -0
- package/src/utils/display/wrapper/types.ts +102 -0
- package/src/utils/e2eMetrics.ts +30 -0
- package/src/utils/hardware/hardware.ts +166 -0
- package/src/utils/hardware/index.ts +1 -0
- package/src/utils/miniappGlobals.ts +260 -0
- package/src/utils/permissions/MediaLibraryPermissions.ts +161 -0
- package/src/utils/permissions/galleryDisplayName.ts +28 -0
- package/src/utils/storage/index.ts +2 -0
- package/src/utils/storage/storage.ts +101 -0
- package/src/utils/storage/zip.ts +13 -0
- package/src/utils/timers/index.ts +2 -0
- package/src/utils/timers/timers.ts +139 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { storage } from "../../utils/storage/storage";
|
|
2
|
+
export class GallerySettingsService {
|
|
3
|
+
static instance;
|
|
4
|
+
SETTINGS_KEY = "gallery_settings";
|
|
5
|
+
DEFAULT_SETTINGS = {
|
|
6
|
+
autoSaveToCameraRoll: true, // Default ON
|
|
7
|
+
autoSaveDisableWarningShown: false,
|
|
8
|
+
imageProcessingEnabled: true, // Lens coefficients calibrated from chessboard photos
|
|
9
|
+
};
|
|
10
|
+
constructor() { }
|
|
11
|
+
static getInstance() {
|
|
12
|
+
if (!GallerySettingsService.instance) {
|
|
13
|
+
GallerySettingsService.instance = new GallerySettingsService();
|
|
14
|
+
}
|
|
15
|
+
return GallerySettingsService.instance;
|
|
16
|
+
}
|
|
17
|
+
async getSettings() {
|
|
18
|
+
const res = storage.load(this.SETTINGS_KEY);
|
|
19
|
+
if (res.is_error()) {
|
|
20
|
+
// Not an error - just means settings haven't been saved yet (first use)
|
|
21
|
+
// Return defaults silently
|
|
22
|
+
return this.DEFAULT_SETTINGS;
|
|
23
|
+
}
|
|
24
|
+
const stored = res.value;
|
|
25
|
+
return { ...this.DEFAULT_SETTINGS, ...stored };
|
|
26
|
+
}
|
|
27
|
+
async updateSettings(settings) {
|
|
28
|
+
const current = await this.getSettings();
|
|
29
|
+
const updated = { ...current, ...settings };
|
|
30
|
+
const res = await storage.save(this.SETTINGS_KEY, updated);
|
|
31
|
+
if (res.is_error()) {
|
|
32
|
+
console.error("[GallerySettings] Error saving settings:", res.error);
|
|
33
|
+
throw res.error;
|
|
34
|
+
}
|
|
35
|
+
console.log("[GallerySettings] Settings updated:", updated);
|
|
36
|
+
}
|
|
37
|
+
async getAutoSaveToCameraRoll() {
|
|
38
|
+
const settings = await this.getSettings();
|
|
39
|
+
return settings.autoSaveToCameraRoll;
|
|
40
|
+
}
|
|
41
|
+
async setAutoSaveToCameraRoll(enabled) {
|
|
42
|
+
await this.updateSettings({ autoSaveToCameraRoll: enabled });
|
|
43
|
+
}
|
|
44
|
+
async getImageProcessingEnabled() {
|
|
45
|
+
const settings = await this.getSettings();
|
|
46
|
+
return settings.imageProcessingEnabled;
|
|
47
|
+
}
|
|
48
|
+
async setImageProcessingEnabled(enabled) {
|
|
49
|
+
await this.updateSettings({ imageProcessingEnabled: enabled });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export const gallerySettingsService = GallerySettingsService.getInstance();
|
|
53
|
+
//# sourceMappingURL=gallerySettingsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gallerySettingsService.js","sourceRoot":"","sources":["../../../src/services/asg/gallerySettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,6BAA6B,CAAA;AAQnD,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAC,QAAQ,CAAwB;IAC9B,YAAY,GAAG,kBAAkB,CAAA;IACjC,gBAAgB,GAAoB;QACnD,oBAAoB,EAAE,IAAI,EAAE,aAAa;QACzC,2BAA2B,EAAE,KAAK;QAClC,sBAAsB,EAAE,IAAI,EAAE,sDAAsD;KACrF,CAAA;IAED,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YACrC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;QAChE,CAAC;QACD,OAAO,sBAAsB,CAAC,QAAQ,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAkB,IAAI,CAAC,YAAY,CAAC,CAAA;QAC5D,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnB,wEAAwE;YACxE,2BAA2B;YAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAA;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAA;QACxB,OAAO,EAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,MAAM,EAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkC;QACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAC,CAAA;QACzC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1D,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;YACpE,MAAM,GAAG,CAAC,KAAK,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,OAAO,QAAQ,CAAC,oBAAoB,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAgB;QAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,EAAC,oBAAoB,EAAE,OAAO,EAAC,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,OAAO,QAAQ,CAAC,sBAAsB,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAgB;QAC9C,MAAM,IAAI,CAAC,cAAc,CAAC,EAAC,sBAAsB,EAAE,OAAO,EAAC,CAAC,CAAA;IAC9D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAA","sourcesContent":["import {storage} from \"../../utils/storage/storage\"\n\nexport interface GallerySettings {\n autoSaveToCameraRoll: boolean\n autoSaveDisableWarningShown: boolean\n imageProcessingEnabled: boolean\n}\n\nexport class GallerySettingsService {\n private static instance: GallerySettingsService\n private readonly SETTINGS_KEY = \"gallery_settings\"\n private readonly DEFAULT_SETTINGS: GallerySettings = {\n autoSaveToCameraRoll: true, // Default ON\n autoSaveDisableWarningShown: false,\n imageProcessingEnabled: true, // Lens coefficients calibrated from chessboard photos\n }\n\n private constructor() {}\n\n static getInstance(): GallerySettingsService {\n if (!GallerySettingsService.instance) {\n GallerySettingsService.instance = new GallerySettingsService()\n }\n return GallerySettingsService.instance\n }\n\n async getSettings(): Promise<GallerySettings> {\n const res = storage.load<GallerySettings>(this.SETTINGS_KEY)\n if (res.is_error()) {\n // Not an error - just means settings haven't been saved yet (first use)\n // Return defaults silently\n return this.DEFAULT_SETTINGS\n }\n const stored = res.value\n return {...this.DEFAULT_SETTINGS, ...stored}\n }\n\n async updateSettings(settings: Partial<GallerySettings>): Promise<void> {\n const current = await this.getSettings()\n const updated = {...current, ...settings}\n const res = await storage.save(this.SETTINGS_KEY, updated)\n if (res.is_error()) {\n console.error(\"[GallerySettings] Error saving settings:\", res.error)\n throw res.error\n }\n console.log(\"[GallerySettings] Settings updated:\", updated)\n }\n\n async getAutoSaveToCameraRoll(): Promise<boolean> {\n const settings = await this.getSettings()\n return settings.autoSaveToCameraRoll\n }\n\n async setAutoSaveToCameraRoll(enabled: boolean): Promise<void> {\n await this.updateSettings({autoSaveToCameraRoll: enabled})\n }\n\n async getImageProcessingEnabled(): Promise<boolean> {\n const settings = await this.getSettings()\n return settings.imageProcessingEnabled\n }\n\n async setImageProcessingEnabled(enabled: boolean): Promise<void> {\n await this.updateSettings({imageProcessingEnabled: enabled})\n }\n}\n\nexport const gallerySettingsService = GallerySettingsService.getInstance()\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gallery Sync Notifications
|
|
3
|
+
* Manages system notifications for gallery sync progress
|
|
4
|
+
*
|
|
5
|
+
* Platform differences:
|
|
6
|
+
* - Android: Supports ongoing/sticky notifications that update silently
|
|
7
|
+
* - iOS: Each notification update shows a banner, so we throttle updates
|
|
8
|
+
* and only show start/complete notifications to avoid spam
|
|
9
|
+
*/
|
|
10
|
+
declare class GallerySyncNotifications {
|
|
11
|
+
private static instance;
|
|
12
|
+
private notificationActive;
|
|
13
|
+
private lastUpdateTime;
|
|
14
|
+
private constructor();
|
|
15
|
+
static getInstance(): GallerySyncNotifications;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize notification channel (Android only)
|
|
18
|
+
*/
|
|
19
|
+
private ensureChannel;
|
|
20
|
+
/**
|
|
21
|
+
* Request notification permissions
|
|
22
|
+
*/
|
|
23
|
+
requestPermissions(): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Show initial sync notification
|
|
26
|
+
*/
|
|
27
|
+
showSyncStarted(totalFiles: number): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Update sync progress notification
|
|
30
|
+
* On iOS, updates are throttled to avoid spamming the user with banner notifications
|
|
31
|
+
*/
|
|
32
|
+
updateProgress(currentFile: number, totalFiles: number, _fileName: string, fileProgress: number): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Show sync complete notification
|
|
35
|
+
*/
|
|
36
|
+
showSyncComplete(downloadedCount: number, failedCount?: number): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Show sync error notification
|
|
39
|
+
*/
|
|
40
|
+
showSyncError(errorMessage: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Show sync cancelled notification
|
|
43
|
+
*/
|
|
44
|
+
showSyncCancelled(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Dismiss sync notification
|
|
47
|
+
*/
|
|
48
|
+
dismiss(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Check if sync notification is currently active
|
|
51
|
+
*/
|
|
52
|
+
isActive(): boolean;
|
|
53
|
+
}
|
|
54
|
+
export declare const gallerySyncNotifications: GallerySyncNotifications;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=gallerySyncNotifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gallerySyncNotifications.d.ts","sourceRoot":"","sources":["../../../src/services/asg/gallerySyncNotifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,cAAM,wBAAwB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,cAAc,CAAI;IAE1B,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,wBAAwB;IAO9C;;OAEG;YACW,aAAa;IAmB3B;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY5C;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD;;;OAGG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAkChB;;OAEG;IACG,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvF;;OAEG;IACG,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGpB;AAED,eAAO,MAAM,wBAAwB,0BAAyC,CAAA"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gallery Sync Notifications
|
|
3
|
+
* Manages system notifications for gallery sync progress
|
|
4
|
+
*
|
|
5
|
+
* Platform differences:
|
|
6
|
+
* - Android: Supports ongoing/sticky notifications that update silently
|
|
7
|
+
* - iOS: Each notification update shows a banner, so we throttle updates
|
|
8
|
+
* and only show start/complete notifications to avoid spam
|
|
9
|
+
*/
|
|
10
|
+
// import * as Notifications from "expo-notifications"
|
|
11
|
+
import { Platform } from "react-native";
|
|
12
|
+
// iOS throttling - only update every N seconds to avoid banner spam
|
|
13
|
+
const IOS_UPDATE_THROTTLE_MS = 10000; // 10 seconds between updates on iOS
|
|
14
|
+
// Configure notification handler
|
|
15
|
+
// Notifications.setNotificationHandler({
|
|
16
|
+
// handleNotification: async () => ({
|
|
17
|
+
// shouldShowAlert: true,
|
|
18
|
+
// shouldPlaySound: false,
|
|
19
|
+
// shouldSetBadge: false,
|
|
20
|
+
// // On iOS, minimize banner popups for progress updates
|
|
21
|
+
// shouldShowBanner: Platform.OS === "android",
|
|
22
|
+
// shouldShowList: true,
|
|
23
|
+
// }),
|
|
24
|
+
// })
|
|
25
|
+
class GallerySyncNotifications {
|
|
26
|
+
static instance;
|
|
27
|
+
notificationActive = false;
|
|
28
|
+
lastUpdateTime = 0; // For iOS throttling
|
|
29
|
+
constructor() { }
|
|
30
|
+
static getInstance() {
|
|
31
|
+
if (!GallerySyncNotifications.instance) {
|
|
32
|
+
GallerySyncNotifications.instance = new GallerySyncNotifications();
|
|
33
|
+
}
|
|
34
|
+
return GallerySyncNotifications.instance;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Initialize notification channel (Android only)
|
|
38
|
+
*/
|
|
39
|
+
async ensureChannel() {
|
|
40
|
+
// if (this.channelCreated) return
|
|
41
|
+
// if (Platform.OS === "android") {
|
|
42
|
+
// await Notifications.setNotificationChannelAsync(CHANNEL_ID, {
|
|
43
|
+
// name: "Gallery Sync",
|
|
44
|
+
// description: "Shows progress when syncing photos from your glasses",
|
|
45
|
+
// importance: Notifications.AndroidImportance.LOW, // Low = no sound, shows in shade
|
|
46
|
+
// vibrationPattern: [0], // No vibration
|
|
47
|
+
// lightColor: "#4A90D9",
|
|
48
|
+
// lockscreenVisibility: Notifications.AndroidNotificationVisibility.PUBLIC,
|
|
49
|
+
// bypassDnd: false,
|
|
50
|
+
// enableLights: false,
|
|
51
|
+
// enableVibrate: false,
|
|
52
|
+
// showBadge: false,
|
|
53
|
+
// })
|
|
54
|
+
// }
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Request notification permissions
|
|
58
|
+
*/
|
|
59
|
+
async requestPermissions() {
|
|
60
|
+
// const {status: existingStatus} = await Notifications.getPermissionsAsync()
|
|
61
|
+
// if (existingStatus === "granted") {
|
|
62
|
+
// return true
|
|
63
|
+
// }
|
|
64
|
+
// const {status} = await Notifications.requestPermissionsAsync()
|
|
65
|
+
// return status === "granted"
|
|
66
|
+
return true; // Always return true when notifications disabled
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Show initial sync notification
|
|
70
|
+
*/
|
|
71
|
+
async showSyncStarted(totalFiles) {
|
|
72
|
+
await this.ensureChannel();
|
|
73
|
+
const hasPermission = await this.requestPermissions();
|
|
74
|
+
if (!hasPermission) {
|
|
75
|
+
console.log("[SyncNotifications] No notification permission, skipping");
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// await Notifications.scheduleNotificationAsync({
|
|
79
|
+
// identifier: SYNC_NOTIFICATION_ID,
|
|
80
|
+
// content: {
|
|
81
|
+
// title: "Syncing photos from glasses",
|
|
82
|
+
// body: `Preparing to download ${totalFiles} ${totalFiles === 1 ? "file" : "files"}...`,
|
|
83
|
+
// data: {type: "gallery-sync"},
|
|
84
|
+
// sticky: Platform.OS === "android", // Ongoing notification on Android
|
|
85
|
+
// },
|
|
86
|
+
// trigger: null, // Show immediately
|
|
87
|
+
// })
|
|
88
|
+
this.notificationActive = true;
|
|
89
|
+
this.lastUpdateTime = Date.now(); // Reset throttle timer
|
|
90
|
+
console.log(`[SyncNotifications] Started sync notification for ${totalFiles} files (notifications disabled)`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Update sync progress notification
|
|
94
|
+
* On iOS, updates are throttled to avoid spamming the user with banner notifications
|
|
95
|
+
*/
|
|
96
|
+
async updateProgress(currentFile, totalFiles, _fileName, fileProgress) {
|
|
97
|
+
if (!this.notificationActive)
|
|
98
|
+
return;
|
|
99
|
+
// On iOS, throttle updates to avoid banner spam
|
|
100
|
+
// iOS doesn't support silent notification updates like Android's ongoing notifications
|
|
101
|
+
if (Platform.OS === "ios") {
|
|
102
|
+
const now = Date.now();
|
|
103
|
+
const timeSinceLastUpdate = now - this.lastUpdateTime;
|
|
104
|
+
// Only update if enough time has passed OR if this is the last file completing
|
|
105
|
+
const isLastFileCompleting = currentFile === totalFiles && fileProgress >= 99;
|
|
106
|
+
if (timeSinceLastUpdate < IOS_UPDATE_THROTTLE_MS && !isLastFileCompleting) {
|
|
107
|
+
return; // Skip this update on iOS to avoid banner spam
|
|
108
|
+
}
|
|
109
|
+
this.lastUpdateTime = now;
|
|
110
|
+
}
|
|
111
|
+
await this.ensureChannel();
|
|
112
|
+
// Notifications are disabled; the overall-progress + body computation that fed
|
|
113
|
+
// scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.
|
|
114
|
+
// await Notifications.scheduleNotificationAsync({
|
|
115
|
+
// identifier: SYNC_NOTIFICATION_ID,
|
|
116
|
+
// content: {
|
|
117
|
+
// title: "Syncing photos from glasses",
|
|
118
|
+
// body,
|
|
119
|
+
// data: {type: "gallery-sync", progress: overallProgress},
|
|
120
|
+
// sticky: Platform.OS === "android", // Keep notification visible on Android
|
|
121
|
+
// },
|
|
122
|
+
// trigger: null,
|
|
123
|
+
// })
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Show sync complete notification
|
|
127
|
+
*/
|
|
128
|
+
async showSyncComplete(downloadedCount, failedCount = 0) {
|
|
129
|
+
await this.ensureChannel();
|
|
130
|
+
// Notifications are disabled; the title/body computation that fed
|
|
131
|
+
// scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.
|
|
132
|
+
// await Notifications.scheduleNotificationAsync({
|
|
133
|
+
// identifier: SYNC_NOTIFICATION_ID,
|
|
134
|
+
// content: {
|
|
135
|
+
// title,
|
|
136
|
+
// body,
|
|
137
|
+
// data: {type: "gallery-sync-complete"},
|
|
138
|
+
// },
|
|
139
|
+
// trigger: null,
|
|
140
|
+
// })
|
|
141
|
+
this.notificationActive = false;
|
|
142
|
+
console.log(`[SyncNotifications] Sync complete: ${downloadedCount} downloaded, ${failedCount} failed (notifications disabled)`);
|
|
143
|
+
// Auto-dismiss after 5 seconds
|
|
144
|
+
// setTimeout(() => {
|
|
145
|
+
// this.dismiss()
|
|
146
|
+
// }, 5000)
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Show sync error notification
|
|
150
|
+
*/
|
|
151
|
+
async showSyncError(errorMessage) {
|
|
152
|
+
await this.ensureChannel();
|
|
153
|
+
// await Notifications.scheduleNotificationAsync({
|
|
154
|
+
// identifier: SYNC_NOTIFICATION_ID,
|
|
155
|
+
// content: {
|
|
156
|
+
// title: "Sync failed",
|
|
157
|
+
// body: errorMessage,
|
|
158
|
+
// data: {type: "gallery-sync-error"},
|
|
159
|
+
// },
|
|
160
|
+
// trigger: null,
|
|
161
|
+
// })
|
|
162
|
+
this.notificationActive = false;
|
|
163
|
+
console.log(`[SyncNotifications] Sync error: ${errorMessage} (notifications disabled)`);
|
|
164
|
+
// Auto-dismiss after 5 seconds
|
|
165
|
+
// setTimeout(() => {
|
|
166
|
+
// this.dismiss()
|
|
167
|
+
// }, 5000)
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Show sync cancelled notification
|
|
171
|
+
*/
|
|
172
|
+
async showSyncCancelled() {
|
|
173
|
+
await this.dismiss();
|
|
174
|
+
this.notificationActive = false;
|
|
175
|
+
console.log("[SyncNotifications] Sync cancelled, notification dismissed");
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Dismiss sync notification
|
|
179
|
+
*/
|
|
180
|
+
async dismiss() {
|
|
181
|
+
try {
|
|
182
|
+
// await Notifications.dismissNotificationAsync(SYNC_NOTIFICATION_ID)
|
|
183
|
+
this.notificationActive = false;
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
// Notification may already be dismissed
|
|
187
|
+
console.log("[SyncNotifications] Error dismissing notification:", error);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Check if sync notification is currently active
|
|
192
|
+
*/
|
|
193
|
+
isActive() {
|
|
194
|
+
return this.notificationActive;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
export const gallerySyncNotifications = GallerySyncNotifications.getInstance();
|
|
198
|
+
//# sourceMappingURL=gallerySyncNotifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gallerySyncNotifications.js","sourceRoot":"","sources":["../../../src/services/asg/gallerySyncNotifications.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Gallery Sync Notifications\n * Manages system notifications for gallery sync progress\n *\n * Platform differences:\n * - Android: Supports ongoing/sticky notifications that update silently\n * - iOS: Each notification update shows a banner, so we throttle updates\n * and only show start/complete notifications to avoid spam\n */\n\n// import * as Notifications from \"expo-notifications\"\nimport {Platform} from \"react-native\"\n\n// iOS throttling - only update every N seconds to avoid banner spam\nconst IOS_UPDATE_THROTTLE_MS = 10000 // 10 seconds between updates on iOS\n\n// Configure notification handler\n// Notifications.setNotificationHandler({\n// handleNotification: async () => ({\n// shouldShowAlert: true,\n// shouldPlaySound: false,\n// shouldSetBadge: false,\n// // On iOS, minimize banner popups for progress updates\n// shouldShowBanner: Platform.OS === \"android\",\n// shouldShowList: true,\n// }),\n// })\n\nclass GallerySyncNotifications {\n private static instance: GallerySyncNotifications\n private notificationActive = false\n private lastUpdateTime = 0 // For iOS throttling\n\n private constructor() {}\n\n static getInstance(): GallerySyncNotifications {\n if (!GallerySyncNotifications.instance) {\n GallerySyncNotifications.instance = new GallerySyncNotifications()\n }\n return GallerySyncNotifications.instance\n }\n\n /**\n * Initialize notification channel (Android only)\n */\n private async ensureChannel(): Promise<void> {\n // if (this.channelCreated) return\n\n // if (Platform.OS === \"android\") {\n // await Notifications.setNotificationChannelAsync(CHANNEL_ID, {\n // name: \"Gallery Sync\",\n // description: \"Shows progress when syncing photos from your glasses\",\n // importance: Notifications.AndroidImportance.LOW, // Low = no sound, shows in shade\n // vibrationPattern: [0], // No vibration\n // lightColor: \"#4A90D9\",\n // lockscreenVisibility: Notifications.AndroidNotificationVisibility.PUBLIC,\n // bypassDnd: false,\n // enableLights: false,\n // enableVibrate: false,\n // showBadge: false,\n // })\n // }\n }\n\n /**\n * Request notification permissions\n */\n async requestPermissions(): Promise<boolean> {\n // const {status: existingStatus} = await Notifications.getPermissionsAsync()\n\n // if (existingStatus === \"granted\") {\n // return true\n // }\n\n // const {status} = await Notifications.requestPermissionsAsync()\n // return status === \"granted\"\n return true // Always return true when notifications disabled\n }\n\n /**\n * Show initial sync notification\n */\n async showSyncStarted(totalFiles: number): Promise<void> {\n await this.ensureChannel()\n\n const hasPermission = await this.requestPermissions()\n if (!hasPermission) {\n console.log(\"[SyncNotifications] No notification permission, skipping\")\n return\n }\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title: \"Syncing photos from glasses\",\n // body: `Preparing to download ${totalFiles} ${totalFiles === 1 ? \"file\" : \"files\"}...`,\n // data: {type: \"gallery-sync\"},\n // sticky: Platform.OS === \"android\", // Ongoing notification on Android\n // },\n // trigger: null, // Show immediately\n // })\n\n this.notificationActive = true\n this.lastUpdateTime = Date.now() // Reset throttle timer\n console.log(`[SyncNotifications] Started sync notification for ${totalFiles} files (notifications disabled)`)\n }\n\n /**\n * Update sync progress notification\n * On iOS, updates are throttled to avoid spamming the user with banner notifications\n */\n async updateProgress(\n currentFile: number,\n totalFiles: number,\n _fileName: string,\n fileProgress: number,\n ): Promise<void> {\n if (!this.notificationActive) return\n\n // On iOS, throttle updates to avoid banner spam\n // iOS doesn't support silent notification updates like Android's ongoing notifications\n if (Platform.OS === \"ios\") {\n const now = Date.now()\n const timeSinceLastUpdate = now - this.lastUpdateTime\n\n // Only update if enough time has passed OR if this is the last file completing\n const isLastFileCompleting = currentFile === totalFiles && fileProgress >= 99\n if (timeSinceLastUpdate < IOS_UPDATE_THROTTLE_MS && !isLastFileCompleting) {\n return // Skip this update on iOS to avoid banner spam\n }\n this.lastUpdateTime = now\n }\n\n await this.ensureChannel()\n\n // Notifications are disabled; the overall-progress + body computation that fed\n // scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title: \"Syncing photos from glasses\",\n // body,\n // data: {type: \"gallery-sync\", progress: overallProgress},\n // sticky: Platform.OS === \"android\", // Keep notification visible on Android\n // },\n // trigger: null,\n // })\n }\n\n /**\n * Show sync complete notification\n */\n async showSyncComplete(downloadedCount: number, failedCount: number = 0): Promise<void> {\n await this.ensureChannel()\n\n // Notifications are disabled; the title/body computation that fed\n // scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title,\n // body,\n // data: {type: \"gallery-sync-complete\"},\n // },\n // trigger: null,\n // })\n\n this.notificationActive = false\n console.log(\n `[SyncNotifications] Sync complete: ${downloadedCount} downloaded, ${failedCount} failed (notifications disabled)`,\n )\n\n // Auto-dismiss after 5 seconds\n // setTimeout(() => {\n // this.dismiss()\n // }, 5000)\n }\n\n /**\n * Show sync error notification\n */\n async showSyncError(errorMessage: string): Promise<void> {\n await this.ensureChannel()\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title: \"Sync failed\",\n // body: errorMessage,\n // data: {type: \"gallery-sync-error\"},\n // },\n // trigger: null,\n // })\n\n this.notificationActive = false\n console.log(`[SyncNotifications] Sync error: ${errorMessage} (notifications disabled)`)\n\n // Auto-dismiss after 5 seconds\n // setTimeout(() => {\n // this.dismiss()\n // }, 5000)\n }\n\n /**\n * Show sync cancelled notification\n */\n async showSyncCancelled(): Promise<void> {\n await this.dismiss()\n this.notificationActive = false\n console.log(\"[SyncNotifications] Sync cancelled, notification dismissed\")\n }\n\n /**\n * Dismiss sync notification\n */\n async dismiss(): Promise<void> {\n try {\n // await Notifications.dismissNotificationAsync(SYNC_NOTIFICATION_ID)\n this.notificationActive = false\n } catch (error) {\n // Notification may already be dismissed\n console.log(\"[SyncNotifications] Error dismissing notification:\", error)\n }\n }\n\n /**\n * Check if sync notification is currently active\n */\n isActive(): boolean {\n return this.notificationActive\n }\n}\n\nexport const gallerySyncNotifications = GallerySyncNotifications.getInstance()\n"]}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gallery Sync Service
|
|
3
|
+
* Orchestrates gallery sync independently of UI lifecycle
|
|
4
|
+
*/
|
|
5
|
+
declare class GallerySyncService {
|
|
6
|
+
private static instance;
|
|
7
|
+
private hotspotListenerRegistered;
|
|
8
|
+
private hotspotConnectionTimeout;
|
|
9
|
+
private hotspotRequestTimeout;
|
|
10
|
+
private abortController;
|
|
11
|
+
private isInitialized;
|
|
12
|
+
private glassesStoreUnsubscribe;
|
|
13
|
+
private appStateSubscription;
|
|
14
|
+
private waitingForWifiRetry;
|
|
15
|
+
private lastFullSyncRetryKey;
|
|
16
|
+
private wifiSettingsOpenedAt;
|
|
17
|
+
private syncStartPromise;
|
|
18
|
+
private startAborted;
|
|
19
|
+
private constructor();
|
|
20
|
+
static getInstance(): GallerySyncService;
|
|
21
|
+
/**
|
|
22
|
+
* Initialize the service - register event listeners
|
|
23
|
+
*/
|
|
24
|
+
initialize(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Cleanup - remove event listeners
|
|
27
|
+
*/
|
|
28
|
+
cleanup(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Handle glasses disconnection during sync
|
|
31
|
+
*/
|
|
32
|
+
private handleGlassesDisconnected;
|
|
33
|
+
/**
|
|
34
|
+
* Handle app state changes to auto-retry sync when user returns from settings
|
|
35
|
+
*/
|
|
36
|
+
private handleAppStateChange;
|
|
37
|
+
/**
|
|
38
|
+
* Handle gallery status from glasses
|
|
39
|
+
*/
|
|
40
|
+
private handleGalleryStatus;
|
|
41
|
+
/**
|
|
42
|
+
* Handle hotspot status change event
|
|
43
|
+
*/
|
|
44
|
+
private handleHotspotStatusChange;
|
|
45
|
+
/**
|
|
46
|
+
* Handle hotspot error event
|
|
47
|
+
*/
|
|
48
|
+
private handleHotspotError;
|
|
49
|
+
/**
|
|
50
|
+
* Start the sync process
|
|
51
|
+
*/
|
|
52
|
+
startSync(): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Native location-services (GPS on/off) check, raced against a timeout so a hung
|
|
55
|
+
* CrustModule call can't freeze the sync pre-flight. Mirrors the host's former
|
|
56
|
+
* PermissionsUtils.isLocationServicesEnabled exactly: on timeout assume enabled
|
|
57
|
+
* (proceed); on any other native error assume disabled (block + prompt). Android-only
|
|
58
|
+
* callers; iOS doesn't need location for BLE since iOS 13.
|
|
59
|
+
*/
|
|
60
|
+
private isLocationServicesEnabled;
|
|
61
|
+
/**
|
|
62
|
+
* Mirrors the host's old PermissionsUtils.isBluetoothEnabled exactly: poll
|
|
63
|
+
* BleManager for up to 500ms while the adapter reports "unknown"; assume
|
|
64
|
+
* enabled on a timeout (a slow adapter must not block the sync) and disabled
|
|
65
|
+
* on a check error.
|
|
66
|
+
*/
|
|
67
|
+
private isBluetoothAdapterEnabled;
|
|
68
|
+
private shouldAbortPreFlight;
|
|
69
|
+
private runStartSync;
|
|
70
|
+
/**
|
|
71
|
+
* Show explanation dialog before WiFi connection (first time only)
|
|
72
|
+
* Returns true if user wants to proceed, false if cancelled
|
|
73
|
+
*/
|
|
74
|
+
private showWifiJoinExplanation;
|
|
75
|
+
/**
|
|
76
|
+
* Connect to hotspot WiFi with retry logic (unified for both platforms)
|
|
77
|
+
* Both iOS and Android benefit from retries:
|
|
78
|
+
* - iOS: Library throws "internal error" before user responds to system dialog
|
|
79
|
+
* - Android: Hotspot needs time to initialize, especially when glasses WiFi was cold
|
|
80
|
+
*/
|
|
81
|
+
private connectToHotspotWifi;
|
|
82
|
+
private fetchSyncManifest;
|
|
83
|
+
/**
|
|
84
|
+
* Resolve sync manifest: detect skew, optionally fix clock, retry full sync when needed.
|
|
85
|
+
*/
|
|
86
|
+
private resolveSyncManifest;
|
|
87
|
+
/**
|
|
88
|
+
* Start downloading files
|
|
89
|
+
*/
|
|
90
|
+
private startFileDownload;
|
|
91
|
+
/**
|
|
92
|
+
* Execute the actual file download.
|
|
93
|
+
* Used for old asg_client firmware that doesn't send api_version=2 / captures.
|
|
94
|
+
* NOTE: The sidecar/bracket filtering within is likely dead code — old firmware
|
|
95
|
+
* only produces flat photos/videos with no sidecars or HDR brackets.
|
|
96
|
+
*/
|
|
97
|
+
private executeDownload;
|
|
98
|
+
/**
|
|
99
|
+
* Execute capture-aware download (api_version=2).
|
|
100
|
+
* Downloads captures as groups, runs HDR merge, saves single metadata entry per capture.
|
|
101
|
+
*/
|
|
102
|
+
private executeCaptureDownload;
|
|
103
|
+
/**
|
|
104
|
+
* Handle sync completion
|
|
105
|
+
*/
|
|
106
|
+
private onSyncComplete;
|
|
107
|
+
/**
|
|
108
|
+
* Cancel the current sync
|
|
109
|
+
*/
|
|
110
|
+
cancelSync(): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Close the hotspot
|
|
113
|
+
*/
|
|
114
|
+
private closeHotspot;
|
|
115
|
+
/**
|
|
116
|
+
* Check for resumable sync on app start
|
|
117
|
+
*/
|
|
118
|
+
checkForResumableSync(): Promise<boolean>;
|
|
119
|
+
/**
|
|
120
|
+
* Resume a previously interrupted sync
|
|
121
|
+
*/
|
|
122
|
+
resumeSync(): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Query glasses for gallery status
|
|
125
|
+
*/
|
|
126
|
+
queryGlassesGalleryStatus(): Promise<void>;
|
|
127
|
+
/** True while pre-flight startSync work is in flight (before sync state transitions). */
|
|
128
|
+
isSyncStarting(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Check if sync is currently in progress (hotspot/WiFi/download phases).
|
|
131
|
+
* Does not include pre-flight — use isSyncStarting() for that.
|
|
132
|
+
*/
|
|
133
|
+
isSyncing(): boolean;
|
|
134
|
+
}
|
|
135
|
+
export declare const gallerySyncService: GallerySyncService;
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=gallerySyncService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gallerySyncService.d.ts","sourceRoot":"","sources":["../../../src/services/asg/gallerySyncService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6DH,cAAM,kBAAkB;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,yBAAyB,CAAQ;IACzC,OAAO,CAAC,wBAAwB,CAAsB;IACtD,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,uBAAuB,CAA4B;IAC3D,OAAO,CAAC,oBAAoB,CAA4D;IACxF,OAAO,CAAC,mBAAmB,CAAQ;IAInC,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAOxC;;OAEG;IACH,UAAU,IAAI,IAAI;IA8BlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAmCf;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAoChC;IAED;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAqE3B;IAED;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAK1B;IAED;;OAEG;IACH,OAAO,CAAC,yBAAyB,CA8DhC;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAYzB;IAED;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC;;;;;;OAMG;YACW,yBAAyB;IAqBvC;;;;;OAKG;YACW,yBAAyB;IAkBvC,OAAO,CAAC,oBAAoB;YAWd,YAAY;IAiX1B;;;OAGG;YACW,uBAAuB;IA8BrC;;;;;OAKG;YACW,oBAAoB;YAwbpB,iBAAiB;IAqC/B;;OAEG;YACW,mBAAmB;IA+CjC;;OAEG;YACW,iBAAiB;IAqK/B;;;;;OAKG;YACW,eAAe;IAkR7B;;;OAGG;YACW,sBAAsB;IAyMpC;;OAEG;YACW,cAAc;IAqG5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;OAEG;YACW,YAAY;IAe1B;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY/C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhD,yFAAyF;IACzF,cAAc,IAAI,OAAO;IAIzB;;;OAGG;IACH,SAAS,IAAI,OAAO;CAMrB;AAED,eAAO,MAAM,kBAAkB,oBAAmC,CAAA"}
|