Example #1
0
 /// <summary>
 /// Validates the devlivery quote arguments are ready to be sent to postmates
 /// </summary>
 public void Validate()
 {
     PickupPhoneNumber  = PickupPhoneNumber.ToSimplePhoneNumber();
     DropoffPhoneNumber = DropoffPhoneNumber.ToSimplePhoneNumber();
     PickupAddress.Validate();
     DropoffAddress.Validate();
 }
Example #2
0
        public TripLocationViewModel(
            ISchedulerProvider schedulerProvider,
            INavigationService navigationService,
            ISearchPlaceViewModelFactory searchPlaceViewModelFactory)
        {
            _pickupLocationEditorViewModel      = searchPlaceViewModelFactory.GetPickupLocationEditorViewModel();
            _destinationLocationEditorViewModel = searchPlaceViewModelFactory.GetDestinationLocationEditorViewModel(this);
            _navigationService = navigationService;

            _pickupLocationEditorViewModel.SelectedAddress
            .ObserveOn(schedulerProvider.SynchronizationContextScheduler)
            .Subscribe(address =>
            {
                PickupAddress.SetAddress(address);
                _pickupLocationChanged.OnNext(true);
                _navigationService.GoBack();
            });

            _destinationLocationEditorViewModel.SelectedAddress
            .ObserveOn(schedulerProvider.SynchronizationContextScheduler)
            .Subscribe(address =>
            {
                DestinationAddress.SetAddress(address);
                CanRequest = true;
                _navigationService.GoBack();
            });
        }
        private void ShowMarkers()
        {
            if (AddressSelectionMode == AddressSelectionMode.DropoffSelection)
            {
                var currentState = ((HomeViewModel)ViewModel.Parent).CurrentViewState;

                if (currentState == HomeViewModelState.BookingStatus || currentState == HomeViewModelState.ManualRidelinq)
                {
                    return;
                }

                SetAnnotation(DestinationAddress, _destinationAnnotation, false);
                SetOverlay(_pickupCenterPin, false);
                SetOverlay(_dropoffCenterPin, true);

                SetAnnotation(PickupAddress, _pickupAnnotation, PickupAddress.HasValidCoordinate());
            }
            else if (AddressSelectionMode == AddressSelectionMode.PickupSelection)
            {
                var currentState = ((HomeViewModel)ViewModel.Parent).CurrentViewState;

                if (currentState == HomeViewModelState.BookingStatus || currentState == HomeViewModelState.ManualRidelinq)
                {
                    // Don't display movable pickup or dropoff pins
                    return;
                }

                SetAnnotation(PickupAddress, _pickupAnnotation, false);
                SetOverlay(_dropoffCenterPin, false);
                SetOverlay(_pickupCenterPin, true);

                SetAnnotation(DestinationAddress, _destinationAnnotation, DestinationAddress.HasValidCoordinate());
            }
            else
            {
                SetOverlay(_pickupCenterPin, false);
                SetOverlay(_dropoffCenterPin, false);

                SetAnnotation(DestinationAddress, _destinationAnnotation, DestinationAddress.HasValidCoordinate());

                SetAnnotation(PickupAddress, _pickupAnnotation, PickupAddress.HasValidCoordinate());
            }
        }
Example #4
0
 /// <summary>
 /// Validates the devlivery create arguments are ready to be sent to postmates
 /// </summary>
 public void Validate()
 {
     PickupAddress.Validate();
     DropoffAddress.Validate();
 }
        private void ShowMarkers()
        {
            if (AddressSelectionMode == AddressSelectionMode.DropoffSelection)
            {
                var position = new Position {
                    Latitude = PickupAddress.Latitude, Longitude = PickupAddress.Longitude
                };

                _destinationPin.Visible        = false;
                _pickupOverlay.Visibility      = ViewStates.Invisible;
                _destinationOverlay.Visibility = ViewStates.Visible;

                if (PickupAddress.HasValidCoordinate())
                {
                    _pickupPin.Visible  = true;
                    _pickupPin.Position = new LatLng(position.Latitude, position.Longitude);
                }
                else
                {
                    _pickupPin.Visible = false;
                }
            }
            else if (AddressSelectionMode == AddressSelectionMode.PickupSelection)
            {
                _pickupPin.Visible             = false;
                _destinationOverlay.Visibility = ViewStates.Invisible;
                _pickupOverlay.Visibility      = ViewStates.Visible;

                if (DestinationAddress.HasValidCoordinate())
                {
                    var position = new Position {
                        Latitude = DestinationAddress.Latitude, Longitude = DestinationAddress.Longitude
                    };
                    _destinationPin.Visible  = true;
                    _destinationPin.Position = new LatLng(position.Latitude, position.Longitude);
                }
                else
                {
                    _destinationPin.Visible = false;
                }
            }
            else
            {
                _destinationOverlay.Visibility = ViewStates.Gone;
                _pickupOverlay.Visibility      = ViewStates.Gone;


                if (PickupAddress.HasValidCoordinate())
                {
                    var position = new Position {
                        Latitude = PickupAddress.Latitude, Longitude = PickupAddress.Longitude
                    };
                    _pickupPin.Visible  = true;
                    _pickupPin.Position = new LatLng(position.Latitude, position.Longitude);
                }
                else
                {
                    _pickupPin.Visible = false;
                }

                if (DestinationAddress.HasValidCoordinate())
                {
                    var position = new Position {
                        Latitude = DestinationAddress.Latitude, Longitude = DestinationAddress.Longitude
                    };
                    _destinationPin.Visible  = true;
                    _destinationPin.Position = new LatLng(position.Latitude, position.Longitude);
                }
                else
                {
                    _destinationPin.Visible = false;
                }
            }
        }
Example #6
0
        private void ShowMarkers()
        {
            if (AddressSelectionMode == AddressSelectionMode.DropoffSelection)
            {
                var position = new LatLng(PickupAddress.Latitude, PickupAddress.Longitude);

                _destinationPin.Marker.Remove();
                _pickupOverlay.Visibility      = ViewStates.Invisible;
                _destinationOverlay.Visibility = ViewStates.Visible;

                if (PickupAddress.HasValidCoordinate())
                {
                    _pickupPin.Marker.Remove();
                    _pickupPin.InvokeIcon(_hailIcon);
                    _pickupPin.InvokePosition(GetMarkerPositionWithAnchor(position, _pickupPin.Icon));
                    Map.AddMarker(_pickupPin);
                }
                else
                {
                    _pickupPin.Marker.Remove();
                }
            }
            else if (AddressSelectionMode == AddressSelectionMode.PickupSelection)
            {
                _pickupPin.Marker.Remove();
                _destinationOverlay.Visibility = ViewStates.Invisible;
                _pickupOverlay.Visibility      = ViewStates.Visible;

                if (DestinationAddress.HasValidCoordinate())
                {
                    var position = new LatLng(DestinationAddress.Latitude, DestinationAddress.Longitude);
                    _destinationPin.Marker.Remove();
                    _destinationPin.InvokeIcon(_destinationIcon);
                    _destinationPin.InvokePosition(GetMarkerPositionWithAnchor(position, _destinationPin.Icon));
                    Map.AddMarker(_destinationPin);
                }
                else
                {
                    _destinationPin.Marker.Remove();
                }
            }
            else
            {
                _destinationOverlay.Visibility = ViewStates.Gone;
                _pickupOverlay.Visibility      = ViewStates.Gone;


                if (PickupAddress.HasValidCoordinate())
                {
                    var position = new LatLng(PickupAddress.Latitude, PickupAddress.Longitude);
                    _pickupPin.Marker.Remove();
                    _pickupPin.InvokeIcon(_hailIcon);
                    _pickupPin.InvokePosition(GetMarkerPositionWithAnchor(position, _pickupPin.Icon));
                    Map.AddMarker(_pickupPin);
                }
                else
                {
                    _pickupPin.Marker.Remove();
                }

                if (DestinationAddress.HasValidCoordinate())
                {
                    var position = new LatLng(DestinationAddress.Latitude, DestinationAddress.Longitude);
                    _destinationPin.Marker.Remove();
                    _destinationPin.InvokeIcon(_destinationIcon);
                    _destinationPin.InvokePosition(GetMarkerPositionWithAnchor(position, _destinationPin.Icon));
                    Map.AddMarker(_destinationPin);
                }
                else
                {
                    _destinationPin.Marker.Remove();
                }
            }
        }