protected override void OnResume() { base.OnResume(); Task.Run(async() => { var defaultCountry = await PoiCountryHelper.GetDefaultCountryByPhoneLocation(); MainThread.BeginInvokeOnMainThread(() => SelectCountry(defaultCountry)); }); }
private void OnIndexDownloaded(string json) { try { _downloadViewItems = new List <DownloadViewItem>(); //fetch list of already downladed items from database var downloadedTask = AppContext.Database.GetDownloadedPoisAsync(); downloadedTask.Wait(); var _downloadItems = downloadedTask.Result.ToList(); if (!String.IsNullOrEmpty(json)) { var _horizonIndex = JsonConvert.DeserializeObject <HorizonIndex>(json); //combine those two lists together foreach (var country in _horizonIndex) { foreach (var item in country.PoiData) { var fromDB = _downloadItems.Find(x => x.Id == item.Id); if (fromDB == null) { fromDB = new PoisToDownload() { Id = item.Id, Description = item.Description, Category = item.Category, Url = item.Url, Country = country.Country, PointCount = item.PointCount, DateCreated = item.DateCreated, DownloadDate = null }; } var x = new DownloadViewItem(fromDB, item); _downloadViewItems.Add(x); } } } } catch (Exception e) { PopupHelper.ErrorDialog(this, Resource.String.Download_ErrorDownloading, e.Message); return; } var countries = _downloadViewItems.Select(x => x.fromDatabase.Country) .Distinct() .OrderBy(x => PoiCountryHelper.GetCountryName(x)) .ToList(); Task.Run(async() => { var defaultCountry = await PoiCountryHelper.GetDefaultCountryByPhoneLocation(); MainThread.BeginInvokeOnMainThread(() => { _countryAdapter.SetItems(countries); SelectCountry(defaultCountry); }); }); }