public async Task SetupInit() { if (!await LetLocationStart()) { MessengerService.Toast(this, "Unable to get current location", true); } MapDrawer.MoveCameraZoom(CurrentLocation, 8); try { var path = DatabaseService.GetInstance().GetClosestRiver(); if (path.Points != null) { MapDrawer.DrawLine(path.Points.ToArray()); var launchSites = from p in DatabaseService.GetInstance().Points where p.RiverId == DatabaseService.GetInstance().ClosestRiverId&& p.IsLaunchSite select p; foreach (var site in launchSites) { MapDrawer.DrawMarker(site); } } else { MessengerService.Toast(this, "Failed to get nearest river", true); } } catch (Exception) { MessengerService.Toast(this, "Failed to get nearest river", true); } }
public void StartTrip() { if (!CanStart) { MessengerService.Toast(this, "Invalid trip data", true); return; } ShowViewModel <MapViewModel>(new MapParameters() { InitMode = MapInitModes.TripStart, StartId = Trip.StartId, EndId = Trip.EndId, Set = true }); }
public bool OnMarkerClick(Marker marker) { try { var id = int.Parse(marker.Snippet); ViewModel.SelectedMarker = DatabaseService.GetInstance().GetPoint(id); marker.ShowInfoWindow(); return(true); } catch (Exception) { MessengerService.Toast(this, "Failed to get id of marker", true); } return(false); }
public async Task LetDBSetup() { var times = 0; while (!DatabaseService.GetInstance().IsReady) { if (times == 20) { MessengerService.Toast(this, "DB not updating. Consider restarting app", false); } await Task.Delay(TimeSpan.FromMilliseconds(300)); times++; } }
public void SetupTripStart() { if (StartPoint.Id == int.MaxValue || EndPoint.Id == int.MaxValue) { MessengerService.Toast(this, "Start or end value not valid", true); } else { StartPoint = DatabaseService.GetInstance().GetPoint(StartPoint.Id); EndPoint = DatabaseService.GetInstance().GetPoint(EndPoint.Id); var current = LocationService.GetInstance().CurrentLocation; MapDrawer.DrawMarker(StartPoint); MapDrawer.DrawMarker(EndPoint); MapDrawer.MoveCamera(current); MapDrawer.AnimateCameraBounds(new[] { StartPoint, EndPoint, current }); MapDrawer.DrawLine(StartPoint, EndPoint); } }
public void Estimate() { if (_startPoint != null && _endPoint != null) { if (_startPoint.RiverId == _endPoint.RiverId) { var trip = PlanService.GetInstance().EstimateTrip(_startPoint.Id, _endPoint.Id, _startPoint.RiverId); if (trip != null) { if (Trips == null) { Trips = new ObservableCollection <TripEstimate>(); } Trips.Add(trip); RaisePropertyChanged(() => Trips); } } else { MessengerService.Toast(this, "River Ids don't match", true); } } }
private void Navigate(int itemId) { ((MainActivity)Activity).DrawerLayout.CloseDrawers(); //TODO: check if navigate delay is necessary //await Task.Delay (TimeSpan.FromMilliseconds (250)); switch (itemId) { case Resource.Id.nav_map: ViewModel.ShowViewModelAndroid(typeof(MapViewModel)); break; case Resource.Id.nav_preferences: ViewModel.ShowViewModelAndroid(typeof(PreferencesViewModel)); break; case Resource.Id.nav_helpfeedback: ViewModel.ShowViewModelAndroid(typeof(HelpFeedbackViewModel)); break; case Resource.Id.nav_plan: ViewModel.ShowViewModelAndroid(typeof(PlanViewModel)); break; case Resource.Id.nav_recent: ViewModel.ShowViewModelAndroid(typeof(RecentViewModel)); break; case Resource.Id.nav_points: ViewModel.ShowViewModelAndroid(typeof(PointViewModel)); break; default: MessengerService.Toast(this, "Invalid navigation!", true); break; } }
public void AdjustForLocation(Point point) { switch (InitMode) { case MapInitModes.Init: break; case MapInitModes.TripStart: var dist = PBUtilities.DistanceInMeters(point, StartPoint); if (dist > 50) { SubBarText = "Proceed to start point"; } else { SubBarText = "At start"; } break; default: MessengerService.Toast(this, "Map init mode not set", true); break; } }