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'; @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: string = ""; user_image: any = "../assets/imgs/profile.png"; menuSide: string = "left"; notBadge: number; companyUrl: string = "../assets/imgs/CS.png"; companyDesc: string = "Powered By Cloud Solutions"; public 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 ) { 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.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; }); // this.TeamFlag = this.cs.sharedService.getSharedData("myTeamFlag",false); // 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(){ console.log(" getLastLoginInfo"); console.log("get method :"+this.cs.getDeviceToken()); this.deviceToken= this.cs.getDeviceToken(); //this.cs.sharedService.getSharedData("new-device-token",false);// localStorage.getItem('devicyeToken'); console.log("let deviceToken app" + this.cs.sharedService.getSharedData("new-device-token",false)); console.log("localStorage.getItem app" + localStorage.getItem('devicyeToken')); console.log("sheard DEVICE_TOKEN" + this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false)); if (this.deviceToken) { console.log('login enabled first time: ' + this.deviceToken); } else { console.log("no deviceToken" ); this.pushService.startReceiving(); setTimeout(() => { this.deviceToken= localStorage.getItem('deviceToken'); console.log('login enabled second time: ' + this.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(); // } } }); } }