private IEnumerable <PoiViewItem> GetMyPois() { var poiList = Context.Database.GetMyItems(); List <PoiViewItem> items = new PoiViewItemList(poiList, _location, _iGpsUtilities); return(items); }
private IEnumerable <PoiViewItem> GetByName() { var country = (_spinnerCountry.Adapter as CountryAdapter)[_spinnerCountry.SelectedItemPosition]; var category = (_spinnerCategory.Adapter as CategoryAdapter)[_spinnerCategory.SelectedItemPosition]; string poiName = null; if (_editTextSearch.Query.Length > 0) { poiName = _editTextSearch.Query; } IEnumerable <Poi> poiList; if (!string.IsNullOrEmpty(poiName) || country.HasValue || category.HasValue || Context.ShowFavoritePoisOnly) { poiList = Context.Database.FindItems(poiName, category, country, Context.ShowFavoritePoisOnly); } else { poiList = new List <Poi>(); } List <PoiViewItem> items = new PoiViewItemList(poiList, _location, _iGpsUtilities); return(items); }
internal PoiViewItem GetNearestPoi(GpsLocation loc, IGpsUtilities iGpsUtilities) { var candidates = GetItems(loc, 0.2); List <PoiViewItem> items = new PoiViewItemList(candidates, loc, iGpsUtilities); var item = items.OrderBy(x => x.GpsLocation.Distance).FirstOrDefault(); return(item); }
private void AddMyLocation(PoiViewItemList poiViewItems) { var myLocation = new PoiViewItem(GetMyLocationPoi(AppContext)); myLocation.GpsLocation.Distance = 0; myLocation.GpsLocation.Bearing = 0; myLocation.GpsLocation.VerticalViewAngle = 0; poiViewItems.Insert(0, myLocation); }
public void SetPoiViewItemList(PoiViewItemList srcList) { lock (syncLock) { _poisInVisibilityRange = srcList; _poisToBeDisplayed = FilterPoisDoBeDisplayed(_poisInVisibilityRange); } Invalidate(); }
protected void NotifyDataChanged(PoiViewItemList poiData = null) { if (GpsUtils.HasLocation(MyLocation)) { if (poiData is null) { var poiList = Database.GetItems(MyLocation, Settings.MaxDistance); PoiData = new PoiViewItemList(poiList, MyLocation, Settings.MaxDistance, Settings.Categories, iGpsUtilities); } else { PoiData = poiData; } //fetch selected point again if (SelectedPoi != null) { var selectedPoi = PoiData.Find(x => x.Poi.Id == SelectedPoi.Poi.Id); if (selectedPoi != null) { selectedPoi.Selected = true; SelectedPoi = selectedPoi; } else { SelectedPoi = null; } } var args = new DataChangedEventArgs() { PoiData = PoiData }; DataChanged?.Invoke(this, args); } else { var args = new DataChangedEventArgs() { PoiData = null }; DataChanged?.Invoke(this, args); } }
public void FilterPlaces(string name, PoiCountry?country, PoiCategory?category) { Task.Run(() => { IEnumerable <Poi> poiList; if (!string.IsNullOrEmpty(name) || country.HasValue || category.HasValue) { poiList = AppContext.Database.FindItems(name, category, country, false); } else { poiList = new List <Poi>(); } IEnumerable <PoiViewItem> items = new PoiViewItemList(poiList, _centerGpsLocation ?? AppContext.MyLocation, _iGpsUtilities); items = (_sortBy == SortBy.Name) ? items.OrderBy(x => x.Poi.Name) : items.OrderBy(x => x.GpsLocation.Distance); MainThread.BeginInvokeOnMainThread(() => _adapter.SetItems(items)); }); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); if (DeviceDisplay.MainDisplayInfo.Orientation == DisplayOrientation.Portrait) { SetContentView(Resource.Layout.PoiSelectActivityPortrait); } else { SetContentView(Resource.Layout.PoiSelectActivityLandscape); } var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar); SetActionBar(toolbar); ActionBar.SetDisplayShowHomeEnabled(true); ActionBar.SetDisplayHomeAsUpEnabled(true); ActionBar.SetDisplayShowTitleEnabled(true); ActionBar.SetTitle(Resource.String.PoiSelectActivity); _changeFilterTimer.Interval = 1000; _changeFilterTimer.Elapsed += OnChangeFilterTimerElapsed; _changeFilterTimer.AutoReset = false; var longitude = Intent.GetDoubleExtra("Longitude", Double.NaN); var latitude = Intent.GetDoubleExtra("Latitude", Double.NaN); var sortBy = Intent.GetStringExtra("SortBy"); if (longitude != Double.NaN && latitude != Double.NaN) { _centerGpsLocation = new GpsLocation(longitude, latitude, 0); } if (!Enum.TryParse(sortBy, out _sortBy)) { _sortBy = SortBy.Name; } _searchViewText = FindViewById <SearchView>(Resource.Id.editTextSearch); _searchViewText.Iconified = false; _searchViewText.SetQueryHint(Resources.GetText(Resource.String.Common_Search)); _searchViewText.SetOnQueryTextListener(this); _searchViewText.FocusableViewAvailable(_listViewPoi); _spinnerCountry = FindViewById <Spinner>(Resource.Id.spinnerCountry); _spinnerCountry.Adapter = new CountryAdapter(this, true); _spinnerCountry.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(OnFilterCountryChanged); _spinnerCategory = FindViewById <Spinner>(Resource.Id.spinnerCategory); _spinnerCategory.Adapter = new CategoryAdapter(this, true); _spinnerCategory.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(OnFilterCategoryChanged); _listViewPoi = FindViewById <ListView>(Resource.Id.listViewPoi); var poiViewItems = new PoiViewItemList(null, AppContext.MyLocation, _iGpsUtilities); if (Intent.Action == REQUEST_SELECT_DOWNLOADELEVATIONDATAAREA.ToString()) { if (Peaks360Lib.Utilities.GpsUtils.HasLocation(AppContext.MyLocation)) { AddMyLocation(poiViewItems); } } _adapter = new PoiListItemAdapter(this, poiViewItems, this, false); _listViewPoi.Adapter = _adapter; }
protected AppContextBase() { PoiData = new PoiViewItemList(); Settings = new Settings(); Settings.SettingsChanged += OnSettingsChanged; }