From f00643dbf62037a6d0506220b111245fd83bae71 Mon Sep 17 00:00:00 2001 From: umasoodch Date: Mon, 27 Sep 2021 09:57:27 +0300 Subject: [PATCH] fixed production abscence issue --- .../submit-absence.component.html | 2 +- Mohem/src/app/hmg-common/hmg_utils.ts | 38 +++++++++---------- .../attendance-options.component.ts | 4 ++ .../src/app/profile/home/home.component.html | 2 +- .../src/app/profile/home/home.component.scss | 2 + Mohem/src/assets/localization/i18n.json | 8 ++++ 6 files changed, 34 insertions(+), 22 deletions(-) diff --git a/Mohem/src/app/absence/submit-absence/submit-absence.component.html b/Mohem/src/app/absence/submit-absence/submit-absence.component.html index ec40c78c..3eead9c9 100644 --- a/Mohem/src/app/absence/submit-absence/submit-absence.component.html +++ b/Mohem/src/app/absence/submit-absence/submit-absence.component.html @@ -7,7 +7,7 @@
-
diff --git a/Mohem/src/app/hmg-common/hmg_utils.ts b/Mohem/src/app/hmg-common/hmg_utils.ts index d2e72588..301b3997 100644 --- a/Mohem/src/app/hmg-common/hmg_utils.ts +++ b/Mohem/src/app/hmg-common/hmg_utils.ts @@ -6,7 +6,7 @@ import { DevicePermissionsService } from 'src/app/hmg-common/services/device-per import { Geolocation } from '@ionic-native/geolocation/ngx'; import { Platform } from "@ionic/angular"; -declare var cordova: any; +declare const cordova: any; @Injectable({ providedIn: 'root' @@ -41,16 +41,16 @@ export class HMGUtils { async isHuaweiDevice(): Promise { - var result: any = await new Promise((resolve, reject) => { + const result: any = await new Promise((resolve, reject) => { cordova.plugins.CordovaHMSGMSCheckPlugin.isHmsAvailable( "index.js", (_res) => { - var hmsAvailable = _res === "true"; + const hmsAvailable = _res === "true"; resolve(hmsAvailable); }, (_err) => { reject({ "status": false, "error": JSON.stringify(_err) }); - alert("Error checking device HMS/GMS") // add your popup + this.common.presentAlert(this.ts.trPK('general', 'huawei-hms-gms-error')); } ); }); @@ -60,42 +60,40 @@ export class HMGUtils { private getHMSLocation(callBack: Function) { try { - - console.log("Huawei Location [Getting]"); cordova.plugins.CordovaHMSLocationPlugin.requestLocation( "index.js", (_res) => { console.log("Huawei Location Success: [Stop Getting]"); cordova.plugins.CordovaHMSLocationPlugin.removeLocation("", (_res) => { }, (_err) => { }); - var location = _res.split(',') + const location = _res.split(',') console.log(location); - if (location.length == 2) { - var lat = Number(_res.split(',')[0]); - var long = Number(_res.split(',')[1]); - var mock = Boolean(_res.split(',')[2]); + if (location.length == 3) { + const lat = Number(_res.split(',')[0]); + const long = Number(_res.split(',')[1]); + const mock = Boolean(_res.split(',')[2]); callBack({"latitude":lat, "longitude":long, "isfake":mock}) } else { - alert("Invalid Huawei location from plugin."); + this.common.presentAlert(this.ts.trPK('general', 'invalid-huawei-location')); } }, (_err) => { - console.log("Huawei Location [Getting Error]: " + + JSON.stringify(_err)); - alert("Error while getting Huawei location"); + console.log("Huawei Location [Getting Error]: " + JSON.stringify(_err)); + this.common.presentAlert(this.ts.trPK('general', 'invalid-huawei-location')); } ); } catch (_err) { console.log("Huawei Location Plugin [Error]: " + + JSON.stringify(_err)); - alert("Error while initializing Huawei Location Plugin"); + this.common.presentAlert('Error while initializing Huawei Location Plugin'); } } private getGMSLocation(callBack: Function) { this.backgroundGeolocation.getCurrentLocation({ timeout: 10000, enableHighAccuracy: true, maximumAge: 3000 }).then((resp) => { if (resp && (resp.latitude && resp.longitude)) { - var isFakeLocation = resp.isFromMockProvider || resp.mockLocationsEnabled; - var lat = resp.latitude; - var long = resp.longitude; + const isFakeLocation = resp.isFromMockProvider || resp.mockLocationsEnabled; + const lat = resp.latitude; + const long = resp.longitude; callBack({"latitude":lat, "longitude":long, "isfake":isFakeLocation}) } else { this.common.presentAlert(this.ts.trPK('home', 'position-error')); @@ -108,8 +106,8 @@ export class HMGUtils { private getIOSLocation(callBack: Function) { this.geolocation.getCurrentPosition({ maximumAge: 3000, timeout: 10000, enableHighAccuracy: true }).then(resp => { if (resp && resp.coords.latitude && resp.coords.longitude) { - var lat = resp.coords.latitude; - var long = resp.coords.longitude; + const lat = resp.coords.latitude; + const long = resp.coords.longitude; callBack({"latitude":lat, "longitude":long, "isfake":false}) } else { this.common.presentAlert(this.ts.trPK('home', 'position-error')); diff --git a/Mohem/src/app/home/attendance-options/attendance-options.component.ts b/Mohem/src/app/home/attendance-options/attendance-options.component.ts index df7428bd..b2f97ee4 100644 --- a/Mohem/src/app/home/attendance-options/attendance-options.component.ts +++ b/Mohem/src/app/home/attendance-options/attendance-options.component.ts @@ -92,6 +92,10 @@ export class AttendanceOptionsComponent implements OnInit { this.check = 'this device is not huawei device :' + test; console.log('this device is non-huawei device :' + test); } + + this.hmgUtils.getCurrentLocation((data) => { + console.log(data); + }); } public checkFirebaseDocument() { diff --git a/Mohem/src/app/profile/home/home.component.html b/Mohem/src/app/profile/home/home.component.html index 7b87ba62..96b8ea1b 100644 --- a/Mohem/src/app/profile/home/home.component.html +++ b/Mohem/src/app/profile/home/home.component.html @@ -142,7 +142,7 @@ - + diff --git a/Mohem/src/app/profile/home/home.component.scss b/Mohem/src/app/profile/home/home.component.scss index 8ea8bfd1..97bbfbb6 100644 --- a/Mohem/src/app/profile/home/home.component.scss +++ b/Mohem/src/app/profile/home/home.component.scss @@ -1209,6 +1209,8 @@ $actionBtnSize: 36px; height: 35px; color: white; border-radius: 50%; + position: absolute; + right: 30px; } .name{ diff --git a/Mohem/src/assets/localization/i18n.json b/Mohem/src/assets/localization/i18n.json index 01c556c6..58896854 100644 --- a/Mohem/src/assets/localization/i18n.json +++ b/Mohem/src/assets/localization/i18n.json @@ -209,6 +209,14 @@ } }, "general": { + "invalid-huawei-location": { + "en": "Error while getting location from Huawei HMS services", + "ar": "خطأ أثناء الحصول على الموقع من خدمات Huawei HMS" + }, + "huawei-hms-gms-error": { + "en": "Error checking device HMS/GMS availability", + "ar": "خطأ في التحقق من توفر جهاز HMS / GMS" + }, "location-permission-dialog": { "en": "Allow the Mohemm app to access your location for marking your attendance", "ar": "اسمح لتطبيق مهم بالوصول إلى موقعك لتحديد حضورك"