import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core'; import { Platform, Events, MenuController } from '@ionic/angular'; import { TranslatorService } from './hmg-common/services/translator/translator.service'; import { CommonService } from './hmg-common/services/common/common.service'; import { AuthenticationService } from './hmg-common/services/authentication/authentication.service'; import { AuthenticatedUser } from './hmg-common/services/authentication/models/authenticated-user'; import { TabsBarComponent } from './hmg-common/ui/tabs-bar/tabs-bar.component'; import { KeyboardService } from './hmg-common/services/keyboard/keyboard.service'; import { SMSCheckResponse } from 'src/app/hmg-common/services/authentication/models/smscheck.response'; import { PushService } from '../../src/app/hmg-common/services/push/push.service'; import { LazyLoadingService } from './hmg-common/services/lazy-loading/lazy-loading.service'; import { DomSanitizer } from '@angular/platform-browser'; // import { SplashScreen } from '@ionic-native/splash-screen'; import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { Router } from '@angular/router'; import { rejects } from 'assert'; @Component({ selector: 'app-root', styleUrls: ['./app.component.scss'], templateUrl: 'app.component.html' }) export class AppComponent implements OnInit, AfterViewInit { // rootPage:any = LoginPage; // @ViewChild(Nav) nav: Nav; start: any = false; menuList: any = []; User_name_Emp = ''; user_image: any = '../assets/imgs/profile.png'; menuSide = 'left'; notBadge: number; companyUrl = '../assets/imgs/CS.png'; companyDesc = 'Powered By Cloud Solutions'; direction = 'ltr'; User_Job_name: string; public logoutFlage: any = false; requestGetLoginInfo: { DeviceType: string; DeviceToken: string; // this.deviceToken }; user: boolean; deviceToken: string; TeamFlag: string = 'false'; constructor( public ts: TranslatorService, private cs: CommonService, private lazyLoadingService: LazyLoadingService, private platform: Platform, private events: Events, private keyboardService: KeyboardService, private menu: MenuController, private authService: AuthenticationService, private sanitizer: DomSanitizer, public pushService: PushService, private splashScreen: SplashScreen, public router: Router, ) { this.events.subscribe('img-change', displayImg => { console.log('app compont: ' + displayImg); // this.user_image = "data:image/png;base64"+displayImg; this.user_image = this.sanitizer.bypassSecurityTrustUrl('data:Image/*;base64,' + displayImg); }); } ngOnInit() { this.initializeApp(); } ngAfterViewInit() {} initializeApp() { this.start = false; this.menu.enable(false); this.lazyLoadingService.monitorLazyLoading(15, true); this.platform.ready().then(() => { this.ts.loadResources(() => { this.initializeDirection(); // this.statusBar.styleDefault(); this.start = true; this.watchLanguageChangeEvents(); this.subscribeEvents(); this.keyboardService.watchKeyboard(); this.startReceivingPushService(); }); }); } private startReceivingPushService() { console.log('platform.ready'); this.pushService.startReceiving(); setTimeout(() => { console.log(' in setTimeout startReceiving'); this.getLastLoginInfo(); }, 4000); } subscribeEvents() { this.platform.backButton.subscribe(() => { if (this.router.isActive('/authentication/login', true)) { // tslint:disable-next-line: no-string-literal navigator['app'].exitApp(); } }); this.events.subscribe('setMenu', () => { const user = this.authService .loadAuthenticatedUser() .subscribe((user: AuthenticatedUser) => { if (user) { this.companyUrl = user.CompanyImageURL ? user.CompanyImageURL : '../assets/imgs/CS.png'; this.companyDesc = user.CompanyImageDescription ? user.CompanyImageDescription : 'Powered By Cloud Solutions'; this.User_name_Emp = user.EMPLOYEE_DISPLAY_NAME; if (this.cs.getUpdateImage().status) { this.user_image = this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + this.cs.getUpdateImage().img); } else { this.user_image = user.EMPLOYEE_IMAGE ? 'data:image/png;base64,' + user.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'; } this.User_Job_name = user.JOB_NAME; console.log(user); } else { console.log(user); } }); }); this.events.subscribe('getNotCount', badge => { this.notBadge = badge; }); this.events.subscribe('myTeamFlag', myTeamFlag => { this.TeamFlag = myTeamFlag; }); console.log("this.TeamFlag>>>>>>>>>"+ this.TeamFlag); } private initializeDirection() { this.direction = TranslatorService.getCurrentDirection(); } private watchUserLoginChangeEvents() { this.events.subscribe( AuthenticationService.LOGIN_EVENT, (user: AuthenticatedUser, time: Date) => {} ); } private watchLanguageChangeEvents() { this.events.subscribe(TranslatorService.CHANGE_EVENT, () => { this.start = false; this.initializeDirection(); setTimeout(() => { this.start = true; }, 100); }); } logout() { this.cs.sharedService.clearAll(); // this.menu.toggle(); this.menu.enable(false); this.logoutFlage = true; this.events.publish('logoutFlage', this.logoutFlage); this.cs.setUpdateImage('', false); this.TeamFlag = 'false'; this.getLastLoginInfo(); // this.cs.openLogin(); } openMyTeamPage() { this.menu.toggle(); this.cs.openMyTeamPage(); } // profile() { // this.cs.openProfile(); // this.menu.toggle(); // } profile() { this.cs.openEditProfile(); this.menu.toggle(); } openNotification() { this.cs.openNotificationPage(); this.menu.toggle(); } openChangePassword() { this.cs.openChangePassword(); this.menu.toggle(); } // openPayslipPage(){ // this.cs.openPayslipPage(); // this.menu.toggle(); // } private changeImage() { this.cs.openChangeImagePage(); this.menu.toggle(); } closeMenu() { this.menu.toggle(); } getLastLoginInfo() { this.deviceToken = this.cs.getDeviceToken(); // this.cs.sharedService.getSharedData("new-device-token",false);// localStorage.getItem('devicyeToken'); if (this.deviceToken) { console.log('login enabled first time: ' + this.deviceToken); } else { this.pushService.startReceiving(); setTimeout(() => { this.deviceToken = localStorage.getItem('deviceToken'); }, 1000); } this.requestGetLoginInfo = { DeviceType: this.cs.getDeviceType(), // 'Android', DeviceToken: this.deviceToken// "5ca8a69cf1804db55264c349edffb99b9d63acd9fa9b6b18956bcb2ad3f2ba36"//this.deviceToken }; this.authService.getLoginInfo(this.requestGetLoginInfo, () => {}, this.ts.trPK('general', 'ok')).subscribe(res => { if (this.cs.validResponse(res)) { if (res.Mohemm_GetMobileLoginInfoList.length > 0) { this.cs.sharedService.setSharedData( // res.Patient_SELECTDeviceIMEIbyIMEIList[0], res.Mohemm_GetMobileLoginInfoList[0], AuthenticationService.IMEI_USER_DATA ); this.user = true; this.events.publish('user', this.user); setTimeout(() => { this.splashScreen.hide(); }, 3000); if (this.logoutFlage) { this.cs.openLogin(); } } else { this.user = false; this.events.publish('user', this.user); setTimeout(() => { this.splashScreen.hide(); }, 3000); if (this.logoutFlage) { this.cs.openLogin(); } } } else { // this.user = false; // this.splashScreen.hide(); // if(this.logoutFlage){ // this.cs.openLogin(); // } } }); } }