/// <summary>
        /// Handles the Geolocator.StatusChanged event to refresh the map and locations list
        /// if the Geolocator is available, and to display an error message otherwise.
        /// </summary>
        private async void Geolocator_StatusChanged(Geolocator sender, StatusChangedEventArgs args)
        {
            await GeneralHelpers.CallOnUiThreadAsync(async() =>
            {
                switch (args.Status)
                {
                case PositionStatus.Ready:
                    UpdateLocationStatus(true);
                    await ResetViewAsync();
                    break;

                case PositionStatus.Initializing:
                    break;

                case PositionStatus.NoData:
                case PositionStatus.Disabled:
                case PositionStatus.NotInitialized:
                case PositionStatus.NotAvailable:
                default:
                    UpdateLocationStatus(false);
                    await ResetViewAsync(false);
                    break;
                }
            });
        }