/// <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;
            }
        }
    }
示例#3
0
 /// <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;
         }
     }
 }