diff --git a/packages/services/src/Domain/Subscription/SubscriptionManager.ts b/packages/services/src/Domain/Subscription/SubscriptionManager.ts index 9d144e14f..4f7df120e 100644 --- a/packages/services/src/Domain/Subscription/SubscriptionManager.ts +++ b/packages/services/src/Domain/Subscription/SubscriptionManager.ts @@ -37,10 +37,6 @@ export class SubscriptionManager protected override internalEventBus: InternalEventBusInterface, ) { super(internalEventBus) - - internalEventBus.addEventHandler(this, ApplicationEvent.UserRolesChanged) - internalEventBus.addEventHandler(this, ApplicationEvent.Launched) - internalEventBus.addEventHandler(this, ApplicationEvent.SignedIn) } async handleEvent(event: InternalEventInterface): Promise { diff --git a/packages/services/src/Domain/UserEvent/NotificationService.ts b/packages/services/src/Domain/UserEvent/NotificationService.ts index 0409f9c91..969600d3c 100644 --- a/packages/services/src/Domain/UserEvent/NotificationService.ts +++ b/packages/services/src/Domain/UserEvent/NotificationService.ts @@ -15,8 +15,6 @@ export class NotificationService constructor(internalEventBus: InternalEventBusInterface) { super(internalEventBus) - - internalEventBus.addEventHandler(this, SyncEvent.ReceivedNotifications) } async handleEvent(event: InternalEventInterface): Promise { diff --git a/packages/snjs/lib/Application/Application.ts b/packages/snjs/lib/Application/Application.ts index 4809a99f9..51515bd62 100644 --- a/packages/snjs/lib/Application/Application.ts +++ b/packages/snjs/lib/Application/Application.ts @@ -24,8 +24,6 @@ import { ImportDataUseCase, StoragePersistencePolicies, HomeServerServiceInterface, - ApiServiceEvent, - IntegrityEvent, DeviceInterface, SubscriptionManagerInterface, FeaturesClientInterface, @@ -71,7 +69,6 @@ import { EncryptionProviderInterface, VaultUserServiceInterface, VaultInviteServiceInterface, - NotificationServiceEvent, VaultLockServiceInterface, ApplicationConstructorOptions, FullyResolvedApplicationOptions, @@ -135,6 +132,7 @@ import { GetAuthenticatorAuthenticationResponse } from '@Lib/Domain/UseCase/GetA import { GetAuthenticatorAuthenticationOptions } from '@Lib/Domain/UseCase/GetAuthenticatorAuthenticationOptions/GetAuthenticatorAuthenticationOptions' import { Dependencies } from './Dependencies/Dependencies' import { TYPES } from './Dependencies/Types' +import { RegisterApplicationServicesEvents } from './Dependencies/DependencyEvents' /** How often to automatically sync, in milliseconds */ const DEFAULT_AUTO_SYNC_INTERVAL = 30_000 @@ -225,8 +223,8 @@ export class SNApplication implements ApplicationInterface, AppGroupManagedAppli this.dependencies = new Dependencies(this.options) this.registerServiceObservers() - this.defineInternalEventHandlers() - this.createBackgroundDependencies() + + RegisterApplicationServicesEvents(this.dependencies, this.events) } private registerServiceObservers() { @@ -978,79 +976,6 @@ export class SNApplication implements ApplicationInterface, AppGroupManagedAppli return this.getHost.execute().getValue() === (await homeServerService.getHomeServerUrl()) } - private createBackgroundDependencies() { - this.dependencies.get(TYPES.NotificationService) - this.dependencies.get(TYPES.KeyRecoveryService) - } - - private defineInternalEventHandlers(): void { - this.events.addEventHandler(this.dependencies.get(TYPES.FeaturesService), ApiServiceEvent.MetaReceived) - this.events.addEventHandler(this.dependencies.get(TYPES.IntegrityService), SyncEvent.SyncRequestsIntegrityCheck) - this.events.addEventHandler(this.dependencies.get(TYPES.SyncService), IntegrityEvent.IntegrityCheckCompleted) - this.events.addEventHandler(this.dependencies.get(TYPES.UserService), AccountEvent.SignedInOrRegistered) - this.events.addEventHandler(this.dependencies.get(TYPES.SessionManager), ApiServiceEvent.SessionRefreshed) - this.events.addEventHandler(this.dependencies.get(TYPES.SubscriptionManager), SessionEvent.Restored) - - this.events.addEventHandler(this.dependencies.get(TYPES.VaultInviteService), SyncEvent.ReceivedSharedVaultInvites) - - this.events.addEventHandler(this.dependencies.get(TYPES.SharedVaultService), SessionEvent.UserKeyPairChanged) - this.events.addEventHandler( - this.dependencies.get(TYPES.SharedVaultService), - NotificationServiceEvent.NotificationReceived, - ) - this.events.addEventHandler(this.dependencies.get(TYPES.SharedVaultService), SyncEvent.ReceivedRemoteSharedVaults) - - this.events.addEventHandler( - this.dependencies.get(TYPES.AsymmetricMessageService), - SyncEvent.ReceivedAsymmetricMessages, - ) - - if (this.dependencies.get(TYPES.FilesBackupService)) { - this.events.addEventHandler( - this.dependencies.get(TYPES.FilesBackupService), - ApplicationEvent.ApplicationStageChanged, - ) - } - if (this.dependencies.get(TYPES.HomeServerService)) { - this.events.addEventHandler( - this.dependencies.get(TYPES.HomeServerService), - ApplicationEvent.ApplicationStageChanged, - ) - } - - this.events.addEventHandler(this.dependencies.get(TYPES.SessionManager), ApplicationEvent.ApplicationStageChanged) - this.events.addEventHandler( - this.dependencies.get(TYPES.SelfContactManager), - ApplicationEvent.ApplicationStageChanged, - ) - this.events.addEventHandler( - this.dependencies.get(TYPES.KeySystemKeyManager), - ApplicationEvent.ApplicationStageChanged, - ) - this.events.addEventHandler( - this.dependencies.get(TYPES.SubscriptionManager), - ApplicationEvent.ApplicationStageChanged, - ) - this.events.addEventHandler(this.dependencies.get(TYPES.FeaturesService), ApplicationEvent.ApplicationStageChanged) - this.events.addEventHandler( - this.dependencies.get(TYPES.KeyRecoveryService), - ApplicationEvent.ApplicationStageChanged, - ) - this.events.addEventHandler(this.dependencies.get(TYPES.MigrationService), ApplicationEvent.ApplicationStageChanged) - this.events.addEventHandler( - this.dependencies.get(TYPES.PreferencesService), - ApplicationEvent.ApplicationStageChanged, - ) - this.events.addEventHandler( - this.dependencies.get(TYPES.ProtectionService), - ApplicationEvent.ApplicationStageChanged, - ) - this.events.addEventHandler( - this.dependencies.get(TYPES.DiskStorageService), - ApplicationEvent.ApplicationStageChanged, - ) - } - get device(): DeviceInterface { return this.dependencies.get(TYPES.DeviceInterface) } diff --git a/packages/snjs/lib/Application/Dependencies/DependencyEvents.ts b/packages/snjs/lib/Application/Dependencies/DependencyEvents.ts new file mode 100644 index 000000000..93181dc1b --- /dev/null +++ b/packages/snjs/lib/Application/Dependencies/DependencyEvents.ts @@ -0,0 +1,48 @@ +import { + AccountEvent, + ApiServiceEvent, + ApplicationEvent, + IntegrityEvent, + InternalEventBusInterface, + NotificationServiceEvent, + SessionEvent, + SyncEvent, +} from '@standardnotes/services' +import { Dependencies } from './Dependencies' +import { TYPES } from './Types' + +export function RegisterApplicationServicesEvents(container: Dependencies, events: InternalEventBusInterface): void { + events.addEventHandler(container.get(TYPES.AsymmetricMessageService), SyncEvent.ReceivedAsymmetricMessages) + events.addEventHandler(container.get(TYPES.DiskStorageService), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.FeaturesService), ApiServiceEvent.MetaReceived) + events.addEventHandler(container.get(TYPES.FeaturesService), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.IntegrityService), SyncEvent.SyncRequestsIntegrityCheck) + events.addEventHandler(container.get(TYPES.KeyRecoveryService), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.KeySystemKeyManager), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.MigrationService), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.NotificationService), SyncEvent.ReceivedNotifications) + events.addEventHandler(container.get(TYPES.PreferencesService), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.ProtectionService), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.ProtectionService), ApplicationEvent.Started) + events.addEventHandler(container.get(TYPES.SelfContactManager), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.SessionManager), ApiServiceEvent.SessionRefreshed) + events.addEventHandler(container.get(TYPES.SessionManager), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.SharedVaultService), NotificationServiceEvent.NotificationReceived) + events.addEventHandler(container.get(TYPES.SharedVaultService), SessionEvent.UserKeyPairChanged) + events.addEventHandler(container.get(TYPES.SharedVaultService), SyncEvent.ReceivedRemoteSharedVaults) + events.addEventHandler(container.get(TYPES.SubscriptionManager), ApplicationEvent.ApplicationStageChanged) + events.addEventHandler(container.get(TYPES.SubscriptionManager), ApplicationEvent.Launched) + events.addEventHandler(container.get(TYPES.SubscriptionManager), ApplicationEvent.SignedIn) + events.addEventHandler(container.get(TYPES.SubscriptionManager), ApplicationEvent.UserRolesChanged) + events.addEventHandler(container.get(TYPES.SubscriptionManager), SessionEvent.Restored) + events.addEventHandler(container.get(TYPES.SyncService), IntegrityEvent.IntegrityCheckCompleted) + events.addEventHandler(container.get(TYPES.UserService), AccountEvent.SignedInOrRegistered) + events.addEventHandler(container.get(TYPES.VaultInviteService), SyncEvent.ReceivedSharedVaultInvites) + + if (container.get(TYPES.FilesBackupService)) { + events.addEventHandler(container.get(TYPES.FilesBackupService), ApplicationEvent.ApplicationStageChanged) + } + if (container.get(TYPES.HomeServerService)) { + events.addEventHandler(container.get(TYPES.HomeServerService), ApplicationEvent.ApplicationStageChanged) + } +}