diff --git a/scripts/langindex.json b/scripts/langindex.json
index d5a8c1769..5200cc6d6 100644
--- a/scripts/langindex.json
+++ b/scripts/langindex.json
@@ -502,6 +502,7 @@
"addon.mod_data.foundrecords": "data",
"addon.mod_data.gettinglocation": "local_moodlemobileapp",
"addon.mod_data.latlongboth": "data",
+ "addon.mod_data.locationpermissiondenied": "local_moodlemobileapp",
"addon.mod_data.menuchoose": "data",
"addon.mod_data.modulenameplural": "data",
"addon.mod_data.more": "data",
diff --git a/src/addon/mod/data/fields/latlong/component/latlong.ts b/src/addon/mod/data/fields/latlong/component/latlong.ts
index 2e154961e..869f19c63 100644
--- a/src/addon/mod/data/fields/latlong/component/latlong.ts
+++ b/src/addon/mod/data/fields/latlong/component/latlong.ts
@@ -117,9 +117,19 @@ export class AddonModDataFieldLatlongComponent extends AddonModDataFieldPluginCo
this.form.controls['f_' + this.field.id + '_0'].setValue(result.coords.latitude);
this.form.controls['f_' + this.field.id + '_1'].setValue(result.coords.longitude);
}).catch((error) => {
+ if (this.isPermissionDeniedError(error)) {
+ this.domUtils.showErrorModal('addon.mod_data.locationpermissiondenied', true);
+
+ return;
+ }
+
this.domUtils.showErrorModalDefault(error, 'Error getting location');
}).finally(() => {
modal.dismiss();
});
}
+
+ protected isPermissionDeniedError(error?: any): boolean {
+ return error && 'code' in error && 'PERMISSION_DENIED' in error && error.code === error.PERMISSION_DENIED;
+ }
}
diff --git a/src/addon/mod/data/lang/en.json b/src/addon/mod/data/lang/en.json
index 54de61215..de89c6bca 100644
--- a/src/addon/mod/data/lang/en.json
+++ b/src/addon/mod/data/lang/en.json
@@ -22,6 +22,7 @@
"foundrecords": "Found records: {{$a.num}}/{{$a.max}} (Reset filters)",
"gettinglocation": "Getting location",
"latlongboth": "Both latitude and longitude are required.",
+ "locationpermissiondenied": "Permission to access your location has been denied.",
"menuchoose": "Choose...",
"modulenameplural": "Databases",
"more": "More",
diff --git a/src/assets/lang/en.json b/src/assets/lang/en.json
index 93693ba6f..e0fb0fd71 100644
--- a/src/assets/lang/en.json
+++ b/src/assets/lang/en.json
@@ -501,6 +501,7 @@
"addon.mod_data.foundrecords": "Found records: {{$a.num}}/{{$a.max}} (Reset filters)",
"addon.mod_data.gettinglocation": "Getting location",
"addon.mod_data.latlongboth": "Both latitude and longitude are required.",
+ "addon.mod_data.locationpermissiondenied": "Permission to access your location has been denied.",
"addon.mod_data.menuchoose": "Choose...",
"addon.mod_data.modulenameplural": "Databases",
"addon.mod_data.more": "More",