Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
 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
     });
 }
Beispiel #3
0
 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);
 }
Beispiel #4
0
        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++;
            }
        }
Beispiel #5
0
 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);
     }
 }
Beispiel #6
0
 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;
            }
        }
Beispiel #8
0
        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;
            }
        }