private static void LoadReportData(bool p_clearCurrent = false) { if (_dictUserReports == null || p_clearCurrent == true) { _dictUserReports = new Dictionary <string, UserReportData>(); } string[] __arrayFiles = Directory.GetFiles(Application.dataPath + "/VoxReports"); string __jsonContent; for (int i = 0; i < __arrayFiles.Length; i++) { if (__arrayFiles[i].Contains(".meta")) { continue; } __jsonContent = string.Empty; string __fileName = __arrayFiles[i].Replace(Application.dataPath + "/VoxReports", "").Replace(".json", ""); using (StreamReader reader = new StreamReader(__arrayFiles[i])) { __jsonContent = reader.ReadToEnd(); } Report __report = null; if (__jsonContent != string.Empty) { __report = (Report)JsonUtility.FromJson(__jsonContent, typeof(Report)); } if (__report != null) { Action __addReport = () => { if (_dictUserReports[__report.user].listReportData.Exists(x => x.id == __report.id) == false) { List <Texture2D> __listScreenshoots = LoadScreenshots(__report.listScreenShots); ReportData __reportData = new ReportData(__report.id, __report.user, __report.title, __report.description, __arrayFiles[i], __listScreenshoots); _dictUserReports[__report.user].listReportData.Add(__reportData); } }; if (_dictUserReports.ContainsKey(__report.user) == true) { __addReport(); } else { UserReportData __reportData = new UserReportData(); _dictUserReports.Add(__report.user, __reportData); __addReport(); } } } }
private void DrawUserReports() { GUILayout.Space(10f); EditorGUILayout.BeginVertical(); { EditorGUILayout.BeginHorizontal(); { GUILayout.Space(10f); GUILayout.Label("<b><size=12><color=#000000>Report Manager</color></size></b>", _styleHtml); GUILayout.FlexibleSpace(); if (GUILayout.Button(new GUIContent("Force Reload"), GUILayout.Width(90f))) { LoadReportData(true); } } EditorGUILayout.EndHorizontal(); GUILayout.Space(4f); } EditorGUILayout.EndVertical(); _scrollVertical = EditorGUILayout.BeginScrollView(_scrollVertical, GUIStyle.none, GUI.skin.verticalScrollbar); if (_dictUserReports.Keys.Count == 0) { GUILayout.Label("No Reports To Display"); } else { foreach (string __user in _dictUserReports.Keys) { UserReportData __userReportData = _dictUserReports[__user]; EditorGUILayout.BeginVertical(EditorStyles.helpBox); { EditorGUILayout.BeginHorizontal(); { __userReportData.isUnfolded = EditorGUILayout.Foldout(__userReportData.isUnfolded, string.Empty); GUILayout.Space(-40); GUILayout.Label("<b><size=12><color=#000000> " + __user + " </color></size></b>", _styleHtml); GUILayout.FlexibleSpace(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(4f); if (__userReportData.isUnfolded) { for (int i = 0; i < __userReportData.listReportData.Count; i++) { GUI.color = (i % 2 == 0) ? new Color(216f / 255f, 216f / 255f, 216f / 255f) : Color.white; EditorGUILayout.BeginVertical(EditorStyles.helpBox); { GUI.color = Color.white; ReportData __reportData = __userReportData.listReportData[i]; EditorGUILayout.BeginHorizontal(); { __reportData.isUnfolded = EditorGUILayout.Foldout(__reportData.isUnfolded, string.Empty); GUILayout.Space(-30f); GUILayout.Label("<size=12>" + __reportData.title + "</size>", _styleHtml); GUILayout.FlexibleSpace(); if (GUILayout.Button("X", GUILayout.Width(20f))) { if (EditorUtility.DisplayDialog("Delete " + __reportData.title, "You're sure you wish to delete this report?", "Yes", "Cancel")) { RemoveReportData(__reportData); return; } } } EditorGUILayout.EndHorizontal(); GUILayout.Space(4f); if (__reportData.isUnfolded == true) { GUILayout.Space(10f); if (__reportData.description != string.Empty) { EditorGUILayout.SelectableLabel(__reportData.description); } if (__reportData.listScreenshots != null && __reportData.listScreenshots.Count > 0) { __reportData.scrollScreenshots = EditorGUILayout.BeginScrollView(__reportData.scrollScreenshots, GUI.skin.horizontalScrollbar, GUIStyle.none); EditorGUILayout.BeginHorizontal(); { for (int j = 0; j < __reportData.listScreenshots.Count; j++) { GUILayout.Label(new GUIContent(__reportData.listScreenshots[j]), GUILayout.Width((float)__reportData.listScreenshots[j].width), GUILayout.Height((float)__reportData.listScreenshots[j].height)); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndScrollView(); } } } EditorGUILayout.EndVertical(); } } } EditorGUILayout.EndVertical(); } } GUILayout.FlexibleSpace(); EditorGUILayout.EndScrollView(); DrawVoxDebuggerInfo(); }