private static void FetchGoogleDriveFolderItemsResults() { if (!webRequestObj.isDone) { return; } EditorApplication.update -= FetchGoogleDriveFolderItemsResults; //Handle unexpected error if (webRequestObj.isHttpError || webRequestObj.responseCode != 200) { googleFolderIdHierarcyTree.RemoveAt(googleFolderIdHierarcyTree.Count - 1); Debug.LogError($"[GoogleDataUpload] Unable to Fetch Google Drive folder Items.{webRequestObj.downloadHandler.text}"); return; } //Remove certain characters from returned string ot be able to parse the string using JsonUtility string escapedResultFromJson = GoogleDataUploader.ReplaceEscapeCharacters(webRequestObj.downloadHandler.text); GoogleDriveSearchResults returnedFolderResults = JsonUtility.FromJson <GoogleDriveSearchResults>(escapedResultFromJson); CleanupGoogleItemStruct(ref returnedFolderResults); //Process returned struct for future use //Either set the currentSearch to display or add to a queue for download currentGoogleSearch = returnedFolderResults; if (downloadingRecursively) { PrepareDownloadCurrentItems(); } }
public static void CleanupGoogleItemStruct(ref GoogleDriveSearchResults structToCheck) { if (structToCheck == null || structToCheck.files.Count <= 0) { return; } for (int i = 0; i < structToCheck.files.Count; i++) { structToCheck.files[i].mimeType = CutGoogleMineType(structToCheck.files[i].mimeType); if (structToCheck.files[i].mimeType.Contains("folder")) { structToCheck.files[i].mimeType = "folder"; structToCheck.files[i].fileType = GoogleFileType.Folder; } else { structToCheck.files[i].fileType = GoogleFileType.Octet; } } }