private void DownloadElevationData(DownloadedElevationData ded) { var edd = new ElevationDataDownload(new GpsLocation(ded.Longitude, ded.Latitude, 0), ded.Distance); var pd = new ProgressDialog(this); pd.SetMessage(Resources.GetText(Resource.String.Download_Progress_DownloadingElevationData)); pd.SetCancelable(false); pd.SetProgressStyle(ProgressDialogStyle.Horizontal); pd.Max = 100; pd.Show(); edd.OnFinishedAction = (result) => { pd.Hide(); if (!string.IsNullOrEmpty(result)) { PopupHelper.ErrorDialog(this, result); } else { ded.SizeInBytes = edd.GetSize(); AppContext.DownloadedElevationDataModel.UpdateItem(ded); Finish(); } }; edd.OnProgressChange = (progress) => { MainThread.BeginInvokeOnMainThread(() => { pd.Progress = progress; }); Thread.Sleep(50); }; edd.Execute(); }
private void RemoveElevationData(DownloadedElevationData ded, int oldDedDistance) { var location = new GpsLocation(ded.Longitude, ded.Latitude, 0); var tilesToBeRemovedAll = ElevationTileCollection.GetTilesForRemoval(location, oldDedDistance, ded.Distance); var tilesToBeRemovedUnique = ElevationTileCollection.GetUniqueTilesForRemoval(ded.Id, _allElevationData, tilesToBeRemovedAll); tilesToBeRemovedUnique.Remove(); var edd = new ElevationDataDownload(new GpsLocation(ded.Longitude, ded.Latitude, 0), ded.Distance); ded.SizeInBytes = edd.GetSize(); AppContext.DownloadedElevationDataModel.UpdateItem(ded); Finish(); }
private void SaveElevationData(Poi poi) { if (poi == null) { return; } var ded = new DownloadedElevationData() { Latitude = poi.Latitude, Longitude = poi.Longitude, Altitude = poi.Altitude, PlaceName = poi.Name, Country = poi.Country, Distance = GetDownloadDistance() }; var gpsLocation = new GpsLocation(poi.Longitude, poi.Latitude, poi.Altitude); var ed = new ElevationDataDownload(gpsLocation, ded.Distance); /*if (ed.GetCountToDownload() == 0) * { * PopupHelper.InfoDialog(this, Resources.GetText(Resource.String.DownloadED_NoDataToDownload)); * return; * }*/ if (_oldDedItem != null) { ded.Id = _oldDedItem.Id; if (ded.Distance < _oldDedItem.Distance) { RemoveElevationData(ded, _oldDedItem.Distance); } else { DownloadElevationData(ded); } } else { AppContext.DownloadedElevationDataModel.InsertItem(ded); DownloadElevationData(ded); } }