public void LoadConfig(string jsonFile, HololensConfig storedConfig)
    {
        _loadingConfig = true;
        string configJson = File.ReadAllText(jsonFile);

        ParseConfig(configJson);
    }
    public override bool ShouldStartNetwork()
    {
        if (_saveConfig)
        {
            HololensConfig.instance.SaveToUnityStorage();
            _saveConfig = false;
        }
        if (HololensConfig.instance != null)
        {
#if UNITY_EDITOR
            return(false);
#else
            return(true);
#endif
        }
        else
        {
            if (!_loadingConfig)
            {
                LoadConfig(configName, HololensConfig.CreateFromUnityStorage());
            }
            return(false);
        }
        //return (HololensConfig.instance != null);
    }
    public async void LoadConfig(string jsonFile, HololensConfig storedConfig)
    {
        _loadingConfig = true;
        //first choice is load from user-uploaded file
        //second choice is load from Unity storage
        //final choice is load from json included with installation package
        string json = await this.configJson(jsonFile, storedConfig == null);

        if (json == null || json.Length == 0)
        {
            if (storedConfig != null)
            {
                Debug.Log("[NetworkStartLogic:LoadConfig] using config from Unity storage");
                HololensConfig.instance = storedConfig;
            }
            else
            {
                Debug.LogWarning("[NetworkStartLogic:LoadConfig] failed to load any config");
                HololensConfig.instance        = new HololensConfig();
                HololensConfig.instance.server = "172.16.0.130";
                HololensConfig.instance.id     = "DE4D B3A7";
                IReadOnlyList <Windows.Networking.HostName> hostNames = Windows.Networking.Connectivity.NetworkInformation.GetHostNames();
                foreach (Windows.Networking.HostName hostName in hostNames)
                {
                    if (hostName.Type == Windows.Networking.HostNameType.DomainName)
                    {
                        HololensConfig.instance.id = hostName.RawName;
                        break;
                    }
                }
            }
        }
        else
        {
            ParseConfig(json);
            _saveConfig = true;
        }
    }
    /**********************
    * Config Loading Mess
    **********************/

    void ParseConfig(string json)
    {
        HololensConfig.CreateFromJSON(json);
        Debug.Log("[NetworkStartLogic:ParseConfig] Config " + HololensConfig.instance);
        _loadingConfig = false;
    }
 public static HololensConfig CreateFromJSON(string jsonString)
 {
     HololensConfig.instance = JsonUtility.FromJson <HololensConfig>(jsonString);
     return(HololensConfig.instance);
 }