private void SaveCategories(List <Toggle> specificalCategoryToggles) { CategoryStateHolder categoryStateHolder = new CategoryStateHolder { CategoryToggleStates = new List <CategoryToggleState>() }; foreach (Toggle spesificalCategoryToggle in specificalCategoryToggles) { CategoryToggleState categoryToggleState = new CategoryToggleState { isActive = spesificalCategoryToggle.isOn, categoryType = spesificalCategoryToggle.GetComponent <CategoryInfo>().category, name = spesificalCategoryToggle.GetComponent <CategoryInfo>().category.ToString() }; categoryStateHolder.CategoryToggleStates.Add(categoryToggleState); } string json = JsonUtility.ToJson(categoryStateHolder); Debug.Log(LocalPaths.CATEGORY_SAVE_PATH); File.WriteAllText(LocalPaths.CATEGORY_SAVE_PATH, json); if (categoryStateHolder.CategoryToggleStates.Count > 0) { PlayerPrefs.SetString(PlayerPrefsKeys.CATEGORY_SELECTED, PlayerPrefsKeys.CATEGORY_SELECTED); } }
private CategoryStateHolder LoadCategories() { CategoryStateHolder categoryStateHolder = new CategoryStateHolder(); string reading = File.ReadAllText(LocalPaths.CATEGORY_SAVE_PATH); categoryStateHolder = JsonUtility.FromJson <CategoryStateHolder>(reading); return(categoryStateHolder); }
private IEnumerator GetQuestionIDs(/*List<string> categories*/) { questionIDs.Clear(); while (EventManager.Instance.LoadCategories == null || !LoadingUI.S_IsDatabaseReferencesCreated) { Debug.Log("off offfff"); yield return(null); } CategoryStateHolder categoryStateHolder = EventManager.Instance.LoadCategories(); List <string> categories = new List <string>(); foreach (CategoryToggleState categoryToggleState in categoryStateHolder.CategoryToggleStates) { if (categoryToggleState.isActive) { categories.Add(categoryToggleState.name); } } Debug.Log(FirebaseManager.PublishedQuestionsDatabaseReference); Task <DataSnapshot> task = FirebaseManager.PublishedQuestionsDatabaseReference.GetValueAsync(); yield return(new WaitUntil(() => task.IsCanceled || task.IsFaulted || task.IsCompleted)); if (task.IsCanceled) { Debug.LogWarning(GetDataTaskDebugs.GetData + DebugPaths.IsCanceled); } else if (task.IsFaulted) { Debug.LogError(GetDataTaskDebugs.GetData + DebugPaths.IsFaulted); } else if (task.IsCompleted) { Debug.Log(GetDataTaskDebugs.GetData + DebugPaths.IsCompleted); DataSnapshot dataSnapshot = task.Result; foreach (DataSnapshot questionID in dataSnapshot.Children) { string categoryOfQuestion = questionID.Child(QuestionPaths.QuesitonPath.QuestionCategory).Value.ToString(); if (categories.Contains(categoryOfQuestion)) { questionIDs.Add(questionID.Key); } } } }
private IEnumerator LoadCategories() { CategoryStateHolder stateHolder = new CategoryStateHolder(); string reading = File.ReadAllText(LocalPaths.CATEGORY_SAVE_PATH); stateHolder = JsonUtility.FromJson <CategoryStateHolder>(reading); Debug.Log(reading); while (FirebaseManager.PublishedQuestionsDatabaseReference == null) { yield return(null); } //StartCoroutine(EventManager.Instance.GetQuestionIDs(category.categories)); }