IEnumerator RemovePlaceCoroutine(ItineraryListItem itineraryItem, PlaceDetails placeDetails) { Place place = itineraryItem?.placesData ?.SingleOrDefault(p => p.placeDetails == placeDetails) ?.place; if (place == null) { yield break; } string url = RemovePlaceResult.BuildURL(place); WWW www = new WWW(url); yield return(www); if (www.error != null) { Debug.Log(www.error); yield break; } var placeItem = placesShown.FirstOrDefault(p => p.data.placeDetails == placeDetails); if (placeItem != null) { itineraryItem.placesData.Remove(placeItem.data); placesShown.Remove(placeItem); Destroy(placeItem.gameObject); } }
IEnumerator AddPlaceCoroutine(ItineraryListItem itinerary, PlaceDetails place) { LoginResult user = PersistentUser.User; string url = string.Format( AddPlaceResult.URL, WWW.EscapeURL(itinerary.itinerary.itineraryid), WWW.EscapeURL(place.result.place_id)); WWW www = new WWW(url); yield return(www); if (www.error != null) { Debug.Log(www.error); yield break; } AddPlaceResult json = JsonUtility.FromJson <AddPlaceResult>(www.text); if (json.error != null) { Debug.Log(json.error); yield break; } else if (json.places.Length > 0) { var newItem = AddPlaceListItem(json.places[0]); itinerary.placesData.Add(newItem.data); } }
ItineraryListItem AddItineraryListItem(Itinerary itinerary) { ItineraryListItem item = Instantiate(itineraryItemPrefab, itinerariesHolder) .GetComponent <ItineraryListItem>(); item.Init(itinerary); itineraries.Add(item); return(item); }
/// <summary> /// Start a flyby sequence, with an optional delay. /// </summary> /// <param name="itinerary">Instantiated itinerary item.</param> /// <param name="delay">An optional delay, in seconds.</param> public void StartFlyby(ItineraryListItem itinerary, float delay = 0) { if (itinerary.placesData.Count == 0) { return; } locations = itinerary.placesData .Select(d => d.placeDetails.result.geometry) .ToList(); StopFlyby(); StartCoroutine(FlybyCoroutine(delay)); }
IEnumerator GetPlacesInItineraryCoroutine(ItineraryListItem itinerary) { if (itinerary.placesData.Count == 0) { string url = string.Format( GetPlacesResult.URL, WWW.EscapeURL(itinerary.itinerary.itineraryid)); WWW www = new WWW(url); yield return(www); if (www.error != null) { Debug.Log(www.error); yield break; } GetPlacesResult json = JsonUtility.FromJson <GetPlacesResult>(www.text); if (json.error != null) { Debug.Log(json.error); } else { var placesOrdered = json.places.OrderBy(p => p.itineraryindex); StartCoroutine(GetTravelTimesCoroutine(placesOrdered.ToList())); foreach (var place in placesOrdered) { var newItem = AddPlaceListItem(place); itinerary.placesData.Add(newItem.data); } ValidateArrivalTimings(placesShown.OrderBy(p => p.data.place.itineraryindex)); } } else { foreach (var data in itinerary.placesData) { AddPlaceListItem(data); } StartCoroutine(GetTravelTimesCoroutine(itinerary.placesData.Select(d => d.place).ToList())); } yield return(new WaitUntil(() => placesShown.All(p => !p.IsLoading))); currentItinerary = itinerary; GoToPage(Page.Places); ZoomToSeeAllPlaces(); ItineraryLabels.Instance.Init(itinerary.itinerary); }
IEnumerator RemoveItineraryCoroutine(ItineraryListItem item) { string url = RemoveItineraryResult.BuildURL(item.itinerary); WWW www = new WWW(url); yield return(www); if (www.error != null) { Debug.Log(www.error); yield break; } itineraries.Remove(item); Destroy(item.gameObject); }
public void OnClickItineraryItem(ItineraryListItem item) { itineraryNameInput.text = item.itinerary.name; StartCoroutine(GetPlacesInItineraryCoroutine(item)); }
public void OnClickRemoveItinerary(ItineraryListItem item) { StartCoroutine(RemoveItineraryCoroutine(item)); }