private void ExhibitVisited(object sender, Exhibit exhibit)
        {
            Waypoint waypoint = DetailsRoute.Waypoints.First(wp => Equals(wp.Exhibit, exhibit));
            bool     moved    = DetailsRoute.MoveToPassiveSet(waypoint);

            if (moved)
            {
                OnPropertyChanged(nameof(DetailsRoute));
            }
        }
        public override void OnDisappearing()
        {
            base.OnDisappearing();

            locationManager.RemoveLocationListener(this);

            if (DetailsRoute.IsRouteFinished())
            {
                DetailsRoute.ResetRoute();
            }
            nearbyExhibitManager.ExhibitVisitedEvent -= ExhibitVisited;
        }
Example #3
0
        private async void ExhibitVisited(object sender, Exhibit exhibit)
        {
            var waypoint = DetailsRoute.Waypoints.First(wp => Equals(wp.Exhibit, exhibit));
            var moved    = await DetailsRoute.MoveToPassiveSet(waypoint);

            if (moved)
            {
                DbManager.InTransaction(transaction =>
                {
                    exhibit.Unlocked = true;
                });
                OnPropertyChanged(nameof(DetailsRoute));
            }
        }
        /// <summary>
        /// Starts navigation for the route.
        /// </summary>
        private async void StartRoute()
        {
            if (DetailsRoute.IsRouteStarted())
            {
                string result =
                    await
                    Navigation.DisplayActionSheet(
                        Strings.RouteDetailspageViewModel_RouteStarted,
                        Strings.RouteDetailspageViewModel_Back, null, Strings.RouteDetailspageViewModel_ContinueRoute, Strings.RouteDetailspageViewModel_RestartRoute);

                if (result.Equals(Strings.RouteDetailspageViewModel_RestartRoute))
                {
                    DetailsRoute.ResetRoute();
                }
                else if (result.Equals(Strings.RouteDetailspageViewModel_Back))
                {
                    return;
                }
            }
            await Navigation.PushAsync(new NavigationPageViewModel (DetailsRoute));
        }