/// <summary> /// Thread method to save an ADF. Make this the ThreadFunc. /// </summary> /// <param name="rawName">Name of the ADF. Must be a string.</param> private void _SaveADFInBackground(object rawName) { UUIDUnityHolder adfUnityHolder = new UUIDUnityHolder(); string name = (string)rawName; if (PoseProvider.SaveAreaDescription(adfUnityHolder) == Common.ErrorType.TANGO_SUCCESS) { PoseProvider.GetAreaDescriptionMetaData(adfUnityHolder); PoseProvider.AreaDescriptionMetaData_set(Common.MetaDataKeyType.KEY_NAME, name, adfUnityHolder); PoseProvider.SaveAreaDescriptionMetaData(adfUnityHolder); } else { // Setting a bool is atomic. m_adfSaveFailed = true; } }
void Update() { if (startedSaving) { if (keyboard.done) { savedAdfHolder = new UUIDUnityHolder(); keyboardString = keyboard.text; PoseProvider.SaveAreaDescription(savedAdfHolder); PoseProvider.GetAreaDescriptionMetaData(savedAdfHolder); PoseProvider.AreaDescriptionMetaData_set(Common.MetaDataKeyType.KEY_NAME, keyboardString, savedAdfHolder); PoseProvider.SaveAreaDescriptionMetaData(savedAdfHolder); // Null terminator will cause invalid argument in the file system. string uuid = savedAdfHolder.GetStringDataUUID().Replace("\0", ""); string path = Application.persistentDataPath + "/" + uuid; FileParser.SaveBuildingDataToPath(BuildingManager.instance.buildingList, path); EventManager.instance.GameDataSaved(true); startedSaving = false; } } }
/// <summary> /// Enables keyboard when the save button is pressed and saves the ADF with required metadata when Keyboard is /// done. /// </summary> private void KeyBoardBehaviour() { if (m_keyboardState == KeyboardState.OPEN) { m_keyboard = TouchScreenKeyboard.Open(m_keyboardString, TouchScreenKeyboardType.Default, false); m_keyboardState = KeyboardState.ACTIVE; } if (m_keyboard != null) { if (m_keyboard.done && m_keyboardState != KeyboardState.DONE) { m_keyboardState = KeyboardState.DONE; m_keyboardString = m_keyboard.text; PoseProvider.SaveAreaDescription(m_adfUnityHolder); PoseProvider.GetAreaDescriptionMetaData(m_adfUnityHolder); PoseProvider.AreaDescriptionMetaData_set(Common.MetaDataKeyType.KEY_NAME, m_keyboardString, m_adfUnityHolder); PoseProvider.SaveAreaDescriptionMetaData(m_adfUnityHolder); } else { m_keyboardString = m_keyboard.text; } } }