import {Component, NgZone, OnInit} from '@angular/core'; import {Platform} from '@ionic/angular'; import {Router} from '@angular/router'; declare let window: any; const Paygilant = window.Paygilant; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage implements OnInit { userId; constructor(private router: Router, private zone: NgZone, private platform: Platform) { } actionRegister() { if (window.Paygilant) { const user = new window.Paygilant.User(this.userId, 'dummy@mail.com', Paygilant.VerificationType.VERIFIED, '972-12345', Paygilant.VerificationType.NOT_VERIFIED); const register = new window.Paygilant.Register(user); window.Paygilant.setUserId(this.userId).then(() => { window.Paygilant.arriveToCheckPoint(register).then((result) => { this.router.navigate(["main"], { queryParams: { userId: this.userId } }); }, error => { alert('arriveToCheckPoint error ' + error); }); }, error => { alert('setUserId error ' + error); } ); } } actionLogin() { if (!this.userId) { alert('Username is required field.'); return; } if (window.Paygilant) { window.Paygilant.setUserId(this.userId).then((result) => { window.Paygilant.arriveToCheckPoint(new window.Paygilant.Login(new window.Paygilant.User(this.userId))).then((result) => { console.log('result is', result); this.router.navigate(["main"], { queryParams: { userId: this.userId } }); }, error => { alert('arriveToCheckPoint error ' + error); }); }, error => { alert('setUserId error ' + error); }); } } ngOnInit() { } /** * Fired when the component routing to has finished animating. */ ionViewDidEnter() { if (window.Paygilant) { if (window.device.platform === 'Android') { this.requestAndroidPermissions(); } else { // this.requestContactsPermissions(); this.requestLocationPermissions(); } window.Paygilant.startScreenListener(window.Paygilant.ScreenListenerType.LOGIN_FORM).then((result) => { console.log('startScreenListener result is LOGIN_FORM', result); }, error => { console.log('startScreenListener error LOGIN_FORM', error); }); } } /** * Fired when the component routing from is about to animate. */ ionViewWillLeave(){ if (window.Paygilant) { Paygilant.pauseListenToSensors().then((pauseResult) => { console.log('pause ok', pauseResult); }, (pauseError) => { console.error('pause error', pauseError); }); } } requestLocationPermissions() { var page = this; cordova.plugins['diagnostic'].requestLocationAuthorization(function (status) { page.onRequestPermissionsResult("location-when-in-use", status === cordova.plugins['diagnostic'].permissionStatus.GRANTED); this.requestPhotoLibraryPermissions(); }, function (error) { alert(error); }); } requestPhotoLibraryPermissions() { var page = this; cordova.plugins['diagnostic'].requestCameraRollAuthorization(function (status) { page.onRequestPermissionsResult("photo-library", status === cordova.plugins['diagnostic'].permissionStatus.GRANTED); this.requestCameraPermissions(); }, function (error) { alert(error); }); } requestCameraPermissions() { var page = this; cordova.plugins['diagnostic'].requestCameraAuthorization(function (status) { page.onRequestPermissionsResult("camera", status === cordova.plugins['diagnostic'].permissionStatus.GRANTED); this.requestRemindersPermissions(); }, function (error) { alert(error); }); } requestRemindersPermissions() { var page = this; cordova.plugins['diagnostic'].requestRemindersAuthorization(function (status) { page.onRequestPermissionsResult("reminders", status === cordova.plugins['diagnostic'].permissionStatus.GRANTED); this.requestCalendarPermissions(); }, function (error) { alert(error); }); } requestCalendarPermissions() { var page = this; cordova.plugins['diagnostic'].requestCalendarAuthorization(function (status) { page.onRequestPermissionsResult("calendar", status === cordova.plugins['diagnostic'].permissionStatus.GRANTED); }, function (error) { alert(error); }); } onRequestPermissionsResult(name: string, granted: boolean) { window.Paygilant.onRequestPermissionsResult(name, granted).then( result => { console.log('onRequestPermissionsResult success', name, granted, result); }, error => { console.log('onRequestPermissionsResult error', name, granted, error); } ); } requestAndroidPermissions() { const permissions = cordova.plugins['permissions'] || window.permissions; const list = [ permissions.CAMERA, permissions.READ_EXTERNAL_STORAGE, permissions.WRITE_EXTERNAL_STORAGE, permissions.ACCESS_FINE_LOCATION, permissions.ACCESS_COARSE_LOCATION, permissions.READ_PHONE_STATE ]; list.forEach(permissionName => { permissions.requestPermission( permissionName, status => { const hasPermission = status.hasPermission; window.Paygilant.onRequestPermissionsResult(permissionName, hasPermission).then( result => { console.log('onRequestPermissionsResult success', permissionName, hasPermission, result); }, error => { console.error('onRequestPermissionsResult error', permissionName, hasPermission, error); }); }, err => { alert('permsission err ' + permissionName + ' ' + JSON.stringify(err)); console.error('permsission err ', permissionName, JSON.stringify(err)); }); }); } }