/// <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(); }
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()); } }
/// <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; } } }
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(); } } }