Files
standardnotes-app-web/packages/mobile/src/Lib/ApplicationGroup.ts
2022-09-19 14:47:15 -05:00

45 lines
1.8 KiB
TypeScript

import { ApplicationDescriptor, DeviceInterface, InternalEventBus, SNApplicationGroup } from '@standardnotes/snjs'
import { MobileApplication } from './Application'
import { ApplicationState } from './ApplicationState'
import { BackupsService } from './BackupsService'
import { FilesService } from './FilesService'
import { InstallationService } from './InstallationService'
import { MobileDevice } from './Interface'
import { PreferencesManager } from './PreferencesManager'
import { ReviewService } from './ReviewService'
import { StatusManager } from './StatusManager'
export class ApplicationGroup extends SNApplicationGroup {
constructor() {
super(new MobileDevice())
}
override async initialize(_callback?: any): Promise<void> {
await super.initialize({
applicationCreator: this.createApplication,
})
}
private createApplication = async (descriptor: ApplicationDescriptor, deviceInterface: DeviceInterface) => {
const application = new MobileApplication(deviceInterface as MobileDevice, descriptor.identifier)
const internalEventBus = new InternalEventBus()
const applicationState = new ApplicationState(application)
const reviewService = new ReviewService(application, internalEventBus)
const backupsService = new BackupsService(application, internalEventBus)
const prefsService = new PreferencesManager(application, internalEventBus)
const installationService = new InstallationService(application, internalEventBus)
const statusManager = new StatusManager(application, internalEventBus)
const filesService = new FilesService(application, internalEventBus)
application.setMobileServices({
applicationState,
reviewService,
backupsService,
prefsService,
installationService,
statusManager,
filesService,
})
return application
}
}