From af0b3aa2b9f44ffd589a94402535ba380edc8d7b Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Tue, 1 Dec 2020 18:19:03 +0100 Subject: [PATCH] MOBILE-3320 core: Use custom init status service --- src/core/classes/application-init-status.ts | 26 +++++++++++++++++++++ src/core/core.module.ts | 10 ++++---- 2 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 src/core/classes/application-init-status.ts diff --git a/src/core/classes/application-init-status.ts b/src/core/classes/application-init-status.ts new file mode 100644 index 000000000..c0e8850c8 --- /dev/null +++ b/src/core/classes/application-init-status.ts @@ -0,0 +1,26 @@ +// (C) Copyright 2015 Moodle Pty Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { ApplicationInitStatus, APP_INITIALIZER, Injector } from '@angular/core'; +import { setSingletonsInjector } from '@singletons'; + +export class CoreApplicationInitStatus extends ApplicationInitStatus { + + constructor(injector: Injector) { + setSingletonsInjector(injector); + + super(injector.get(APP_INITIALIZER, [])); + } + +} diff --git a/src/core/core.module.ts b/src/core/core.module.ts index 34ea13519..27d39f8b2 100644 --- a/src/core/core.module.ts +++ b/src/core/core.module.ts @@ -13,17 +13,17 @@ // limitations under the License. import { HTTP_INTERCEPTORS } from '@angular/common/http'; -import { Injector, NgModule } from '@angular/core'; +import { ApplicationInitStatus, Injector, NgModule } from '@angular/core'; import { Platform } from '@ionic/angular'; +import { CoreApplicationInitStatus } from './classes/application-init-status'; import { CoreFeaturesModule } from './features/features.module'; import { CoreFile } from './services/file'; import { CoreInit, CoreInitDelegate } from './services/init'; import { CoreInterceptor } from './classes/interceptor'; import { CoreSites, CORE_SITE_SCHEMAS } from './services/sites'; import { CoreUpdateManager } from './services/update-manager'; -import { setSingletonsInjector } from './singletons'; import { SITE_SCHEMA as FILEPOOL_SITE_SCHEMA } from './services/db/filepool'; import { SITE_SCHEMA as SITES_SITE_SCHEMA } from './services/db/sites'; import { SITE_SCHEMA as SYNC_SITE_SCHEMA } from './services/db/sync'; @@ -34,6 +34,7 @@ import { SITE_SCHEMA as SYNC_SITE_SCHEMA } from './services/db/sync'; ], providers: [ { provide: HTTP_INTERCEPTORS, useClass: CoreInterceptor, multi: true }, + { provide: ApplicationInitStatus, useClass: CoreApplicationInitStatus, deps: [Injector] }, { provide: CORE_SITE_SCHEMAS, useValue: [ @@ -47,10 +48,7 @@ import { SITE_SCHEMA as SYNC_SITE_SCHEMA } from './services/db/sync'; }) export class CoreModule { - constructor(platform: Platform, injector: Injector) { - // Set the injector. - setSingletonsInjector(injector); - + constructor(platform: Platform) { // Register a handler for platform ready. CoreInit.instance.registerProcess({ name: 'CorePlatformReady',