Пример #1
0
    /// <summary>
    /// Internal callback when a permissions event happens.
    /// </summary>
    /// <param name="permissionsGranted">If set to <c>true</c> permissions granted.</param>
    private void _OnTangoApplicationPermissionsEvent(bool permissionsGranted)
    {
        if (permissionsGranted)
        {
            m_tangoApplication.InitApplication();

            // Load the most recent ADF.
            PoseProvider.RefreshADFList();
            UUIDUnityHolder latestAreaDescription = PoseProvider.GetLatestADFUUID();
            if (latestAreaDescription != null)
            {
                string uuid = latestAreaDescription.GetStringDataUUID();
                m_tangoApplication.InitProviders(uuid);
            }
            else
            {
                m_tangoApplication.InitProviders(null);
            }

            m_tangoApplication.ConnectToService();
        }
        else
        {
            AndroidHelper.ShowAndroidToastMessage("Motion Tracking and Area Learning Permissions Needed", true);
        }
    }
    /// <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;
        }
    }
Пример #3
0
    /// <summary>
    /// Refreshs the ADF picker list UI.
    /// </summary>
    /// <param name="list">List to use.</param>
    private void RefreshADFPickerList(UUID_list list)
    {
        foreach (Transform child in transform)
        {
            Destroy(child.gameObject);
        }
        int     numberOfADFs  = list.Count;
        Vector3 startPosition = transform.position;

        for (int i = 0; i < numberOfADFs; i++)
        {
            UUIDUnityHolder             adf     = list.GetADFAtIndex(i);
            Dictionary <string, string> adfMeta = adf.uuidMetaData.GetMetaDataKeyValues();
            string     uuid   = adfMeta["id"];
            string     name   = adfMeta["name"];
            GameObject button = (GameObject)Instantiate(adfPickerButtonPrototype, startPosition + (i * buttonOffsets), Quaternion.identity);
            button.GetComponent <ADFPickerButton>().SetTitles(name, uuid);
        }
    }
    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;
            }
        }
    }
Пример #5
0
 /// <summary>
 /// Start is called after Awake.Make any initilizations here.
 /// </summary>
 void Start()
 {
     m_tangoApplication = FindObjectOfType <TangoApplication>();
     m_adfUnityHolder   = new UUIDUnityHolder();
     m_keyboardState    = KeyboardState.NONE;
 }