refactor: use APP_INITIALIZER for settings init

This commit is contained in:
Rainer Killinger
2021-03-16 12:31:19 +01:00
parent 7d471409cb
commit 550b376a97
3 changed files with 42 additions and 25 deletions

View File

@@ -16,14 +16,10 @@ import {Component} from '@angular/core';
import {SplashScreen} from '@ionic-native/splash-screen/ngx';
import {StatusBar} from '@ionic-native/status-bar/ngx';
import {Platform} from '@ionic/angular';
import {TranslateService} from '@ngx-translate/core';
import {SCLanguageCode} from '@openstapps/core';
import {NGXLogger} from 'ngx-logger';
import {ConfigProvider} from './modules/config/config.provider';
import {SettingsProvider} from './modules/settings/settings.provider';
import {ThingTranslateService} from './translation/thing-translate.service';
import {initLogger} from './_helpers/ts-logger';
/**
* TODO
*/
@@ -60,14 +56,9 @@ export class AppComponent {
constructor(private readonly platform: Platform,
private readonly statusBar: StatusBar,
private readonly splashScreen: SplashScreen,
private readonly translateService: TranslateService,
private readonly thingTranslateService: ThingTranslateService,
private readonly settingsProvider: SettingsProvider,
private readonly configProvider: ConfigProvider,
private readonly logger: NGXLogger) {
initLogger(logger);
// this language will be used as a fallback when a translation isn't found in the current language
this.translateService.setDefaultLang('en');
this.initializeApp();
}
@@ -102,18 +93,6 @@ export class AppComponent {
'credentials',
'others',
]);
try {
// set language from settings
if (this.configProvider.firstSession) {
await this.settingsProvider.setSettingValue('profile', 'language', this.translateService.getBrowserLang());
}
const languageCode = (await this.settingsProvider.getValue('profile', 'language')) as string;
this.thingTranslateService.translator.language = languageCode as SCLanguageCode;
this.translateService.use(languageCode);
} catch (error) {
this.logger.warn(error);
}
});
}
}