public static IEnumerator PopulateList() { CustomAvatarFavorites.LoadedAvatars = new Il2CppSystem.Collections.Generic.List <ApiAvatar>(); Task <string> request = HTTPRequest.get(BetterEmmVRC.BetterEmmVRC.NetworkLib.baseURL + "/api/avatar"); while (!request.IsCompleted && !request.IsFaulted) { yield return(new WaitForEndOfFrame()); } if (!request.IsFaulted) { Avatar[] array = Decoder.Decode(request.Result).Make <Avatar[]>(); if (array != null) { foreach (Avatar avatar in array) { CustomAvatarFavorites.LoadedAvatars.Add(avatar.apiAvatar()); } CustomAvatarFavorites.avText.GetComponentInChildren <Text>().text = "(" + CustomAvatarFavorites.LoadedAvatars.Count.ToString() + ") BetterEmmVRC Favorites"; } } else { CustomAvatarFavorites.error = true; CustomAvatarFavorites.errorWarned = true; } yield break; }
public static IEnumerator UnfavoriteAvatar(ApiAvatar avtr) { if (CustomAvatarFavorites.LoadedAvatars.Contains(avtr)) { CustomAvatarFavorites.LoadedAvatars.Remove(avtr); } Task <string> request = HTTPRequest.delete(BetterEmmVRC.BetterEmmVRC.NetworkLib.baseURL + "/api/avatar", new Avatar(avtr)); while (!request.IsCompleted && !request.IsFaulted) { yield return(new WaitForEndOfFrame()); } if (!request.IsFaulted) { if (!CustomAvatarFavorites.Searching) { CustomAvatarFavorites.avText.GetComponentInChildren <Text>().text = "(" + CustomAvatarFavorites.LoadedAvatars.Count.ToString() + ") BetterEmmVRC Favorites"; MelonCoroutines.Start(CustomAvatarFavorites.RefreshMenu(0.1f)); } } else { AggregateException exception = request.Exception; VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.ShowStandardPopup("emmVRC", "Error occured while updating avatar list.", "Dismiss", delegate() { VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.HideCurrentPopup(); }, null); } yield break; }
public static IEnumerator SearchAvatars(string query) { Helpers.Log("Starting Search For: " + query + ".."); if (BetterEmmVRC.BetterEmmVRC.NetworkLib.authToken == null) { yield return(new WaitForEndOfFrame()); } CustomAvatarFavorites.SearchedAvatars.Clear(); string url = BetterEmmVRC.BetterEmmVRC.NetworkLib.baseURL + "/api/avatar/search"; System.Collections.Generic.Dictionary <string, string> dictionary = new System.Collections.Generic.Dictionary <string, string>(); dictionary["query"] = query; Helpers.Log("Making Request.."); Task <string> request = HTTPRequest.post(url, dictionary); while (!request.IsCompleted && !request.IsFaulted) { yield return(new WaitForEndOfFrame()); } if (!request.IsFaulted) { Helpers.Log("Success!"); Avatar[] array = Decoder.Decode(request.Result).Make <Avatar[]>(); if (array != null) { foreach (Avatar avatar in array) { CustomAvatarFavorites.SearchedAvatars.Add(avatar.apiAvatar()); } } CustomAvatarFavorites.avText.GetComponentInChildren <Text>().text = "(" + CustomAvatarFavorites.SearchedAvatars.Count.ToString() + ") Result(s): " + query; } else { string str = "Asynchronous net post failed: "; AggregateException exception = request.Exception; MelonLogger.LogError(str + ((exception != null) ? exception.ToString() : null)); VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.ShowStandardPopup("emmVRC", "Your search could not be processed.", "Dismiss", delegate() { VRCUiPopupManager.field_Private_Static_VRCUiPopupManager_0.HideCurrentPopup(); }, null); } CustomAvatarFavorites.SearchAvatarList.scrollRect.movementType = ScrollRect.MovementType.Unrestricted; CustomAvatarFavorites.SearchAvatarList.RenderElement(CustomAvatarFavorites.SearchedAvatars); CustomAvatarFavorites.SearchAvatarList.scrollRect.movementType = ScrollRect.MovementType.Elastic; if (CustomAvatarFavorites.SearchAvatarList.expandButton.gameObject.transform.Find("ToggleIcon").GetComponentInChildren <Image>().sprite == CustomAvatarFavorites.SearchAvatarList.expandSprite) { CustomAvatarFavorites.SearchAvatarList.ToggleExtend(); } CustomAvatarFavorites.Searching = true; yield break; }