public IEnumerator LoadInternetPageInternal() { serverConnectionError.SetActive(false); videoContainer.SetActive(false); spinner.gameObject.SetActive(true); spinner.rectTransform.rotation = Quaternion.identity; var offset = (page - 1) * videosPerPage; var url = $"{Web.indexUrl}?count={videosPerPage}&offset={offset}"; if (searchParamAgeDays > 0) { url += $"&agedays={searchParamAgeDays}"; } if (!string.IsNullOrEmpty(searchParamText)) { url += $"&search={searchParamText}"; } if (!string.IsNullOrEmpty(searchParamAuthor)) { url += $"&author={searchParamAuthor}"; } var www = UnityWebRequest.Get(url); yield return(www.SendWebRequest()); spinner.gameObject.SetActive(false); if (www.isNetworkError || www.isHttpError) { serverConnectionError.SetActive(true); yield break; } loadedVideos = JsonUtility.FromJson <VideoResponseSerialize>(www.downloadHandler.text); videoContainer.SetActive(true); noVideos.enabled = loadedVideos.videos.Count == 0; for (int i = offset; i < loadedVideos.videos.Count; i++) { var video = loadedVideos.videos[i]; video.realTimestamp = DateTime.Parse(video.timestamp); } totalVideos = loadedVideos.totalcount; numPages = Mathf.Max(1, Mathf.CeilToInt(totalVideos / (float)videosPerPage)); page = loadedVideos.page; //Note(Simon): Videos { StartCoroutine(BuildVideoGameObjects(false)); } }
public void LoadLocalPageInternal() { serverConnectionError.SetActive(false); videoContainer.SetActive(false); spinner.enabled = true; spinner.rectTransform.rotation = Quaternion.identity; var di = new DirectoryInfo(Application.persistentDataPath); //Note(Simon): Regex to match Guids var localVideos = di.GetDirectories("*-*-*-*-*"); if (loadedVideos == null) { loadedVideos = new VideoResponseSerialize(); } loadedVideos.videos = new List <VideoSerialize>(); loadedVideos.totalcount = localVideos.Length; for (var i = (page - 1) * videosPerPage; i < Mathf.Min(page * videosPerPage, localVideos.Length); i++) { var path = localVideos[i].FullName; var data = SaveFile.OpenFile(Path.Combine(path, SaveFile.metaFilename)); var folderInfo = new DirectoryInfo(path); loadedVideos.videos.Add(new VideoSerialize { title = data.meta.title, description = data.meta.description, downloadsize = SaveFile.DirectorySize(folderInfo), realTimestamp = folderInfo.LastWriteTime, id = localVideos[i].Name, compatibleVersion = !(data.meta.version > VersionManager.VERSION) }); } videoContainer.SetActive(true); spinner.enabled = false; noVideos.enabled = loadedVideos.videos.Count == 0; totalVideos = loadedVideos.totalcount; numPages = Mathf.Max(1, Mathf.CeilToInt(totalVideos / (float)videosPerPage)); //Note(Simon): Videos { StartCoroutine(BuildVideoGameObjects()); } }
public IEnumerator LoadInternetPageInternal() { serverConnectionError.SetActive(false); videoContainer.SetActive(false); spinner.enabled = true; spinner.rectTransform.rotation = Quaternion.identity; var offset = (page - 1) * videosPerPage; var url = string.Format("{0}?count={1}&offset={2}", Web.indexUrl, videosPerPage, offset); if (searchParamAgeDays > 0) { url += string.Format("&agedays={0}", searchParamAgeDays); } if (!string.IsNullOrEmpty(searchParamText)) { url += string.Format("&search={0}", searchParamText); } if (!string.IsNullOrEmpty(searchParamAuthor)) { url += string.Format("&author={0}", searchParamAuthor); } var www = new WWW(url); yield return(www); videoContainer.SetActive(true); spinner.enabled = false; loadedVideos = JsonUtility.FromJson <VideoResponseSerialize>(www.text); if (www.error != null || www.text == "") { serverConnectionError.SetActive(true); yield break; } noVideos.enabled = loadedVideos.videos.Count == 0; for (int i = offset; i < loadedVideos.videos.Count; i++) { var video = loadedVideos.videos[i]; video.realTimestamp = DateTime.Parse(video.timestamp); } totalVideos = loadedVideos.totalcount; numPages = Mathf.Max(1, Mathf.CeilToInt(totalVideos / (float)videosPerPage)); page = loadedVideos.page; //Note(Simon): Videos { var videosThisPage = loadedVideos.videos ?? new List <VideoSerialize>(); while (videos.Count < Mathf.Min(videosPerPage, videosThisPage.Count)) { var video = Instantiate(videoPrefab); video.transform.SetParent(videoContainer.transform, false); videos.Add(video); } while (videos.Count > Mathf.Min(videosPerPage, videosThisPage.Count)) { var video = videos[videos.Count - 1]; videos.RemoveAt(videos.Count - 1); Destroy(video); } for (int i = 0; i < videosThisPage.Count; i++) { var v = videosThisPage[i]; videos[i].GetComponent <IndexPanelVideo>().SetData(v, false); } } }
public void LoadLocalPageInternal() { serverConnectionError.SetActive(false); videoContainer.SetActive(false); spinner.enabled = true; spinner.rectTransform.rotation = Quaternion.identity; var di = new DirectoryInfo(Application.persistentDataPath); //Note(Simon): Regex to match Guids var localVideos = di.GetDirectories("*-*-*-*-*"); if (loadedVideos == null) { loadedVideos = new VideoResponseSerialize(); } loadedVideos.videos = new List <VideoSerialize>(); loadedVideos.totalcount = localVideos.Length; foreach (var v in localVideos) { var path = v.FullName; var data = SaveFile.OpenFile(Path.Combine(path, SaveFile.metaFilename)); var folderInfo = new DirectoryInfo(path); loadedVideos.videos.Add(new VideoSerialize { title = data.meta.title, description = data.meta.description, downloadsize = SaveFile.DirectorySize(folderInfo), realTimestamp = folderInfo.LastWriteTime, uuid = v.Name, }); } videoContainer.SetActive(true); spinner.enabled = false; noVideos.enabled = loadedVideos.videos.Count == 0; totalVideos = loadedVideos.totalcount; numPages = Mathf.Max(1, Mathf.CeilToInt(totalVideos / (float)loadedVideos.count)); page = loadedVideos.page; //Note(Simon): Videos { var videosThisPage = loadedVideos.videos ?? new List <VideoSerialize>(); while (videos.Count < Math.Min(videosPerPage, videosThisPage.Count)) { var video = Instantiate(videoPrefab); video.transform.SetParent(videoContainer.transform, false); videos.Add(video); } while (videos.Count > Math.Min(videosPerPage, videosThisPage.Count)) { var video = videos[videos.Count - 1]; videos.RemoveAt(videos.Count - 1); Destroy(video); } for (int i = 0; i < videosThisPage.Count; i++) { var v = videosThisPage[i]; videos[i].GetComponent <IndexPanelVideo>().SetData(v, true); } } }