IEnumerator RetrievedataForPhoneEnumerator(WWW www)
        {
            string returnString = "Retrieving data..";
            bool   success      = false;

            yield return(www);

            if (www.error != null)
            {
                returnString = "Could not retrieve your settings. Please check your internet connection.";
                success      = false;
            }
            else
            {
                string result = www.text;
                if (result.StartsWith("result:"))
                {
                    result = result.Replace("result:", "");

                    CalibrationData data = JsonUtility.FromJson <CalibrationData> (result);

                    AryzonSettings.Phone.xShift           = data.xShiftLens;
                    AryzonSettings.Phone.yShift           = data.yShiftLens;
                    AryzonSettings.Phone.rotatedSensor    = data.rotatedSensor;
                    AryzonSettings.Phone.screenWidth      = data.screenWidth;
                    AryzonSettings.Phone.aryzonCalibrated = data.aryzonCalibrated;

                    AryzonSettings.Instance.Apply();
                    AryzonSettings.Instance.Save();
                    success      = true;
                    returnString = "Successfully retrieved settings for your phone!";
                }
                else
                {
                    returnString = "Could not find settings for your phone";
                    success      = false;
                }
            }
            if (SettingsRetrieved != null)
            {
                SettingsRetrieved(returnString, success);
            }
        }
        IEnumerator RetrievedataForCodeEnumerator(WWW www)
        {
            string returnString = "Retrieving data..";
            bool   success      = false;

            yield return(www);

            if (www.error != null)
            {
                returnString = "Could not retrieve your settings. Please check your internet connection.";
                success      = false;
            }
            else
            {
                string result = www.text;
                if (result.StartsWith("result:"))
                {
                    result = result.Replace("result:", "");

                    CalibrationData data = JsonUtility.FromJson <CalibrationData> (result);
                    //data.IPD = 0.06f;
                    if (SystemInfo.deviceModel != data.MakeModel)
                    {
                        returnString = "It looks like you have a new phone, please recalibrate.";
                        success      = false;
                    }
                    else
                    {
                        AryzonSettings.Headset.xShift             = data.xShiftLens;
                        AryzonSettings.Headset.yShift             = data.yShiftLens;
                        AryzonSettings.Headset.distortion         = data.distortion;
                        AryzonSettings.Headset.redShift           = data.redShift;
                        AryzonSettings.Headset.greenShift         = data.greenShift;
                        AryzonSettings.Headset.blueShift          = data.blueShift;
                        AryzonSettings.Headset.lensCenterDistance = data.lensCenterDistance;
                        AryzonSettings.Headset.eyeToLens          = data.eyeToLens;
                        AryzonSettings.Headset.lensToScreen       = data.lensToScreen;
                        AryzonSettings.Headset.focalLength        = data.focalLength;
                        AryzonSettings.Headset.name              = data.headsetName;
                        AryzonSettings.Headset.bottomToCenter    = data.bottomToCenter;
                        AryzonSettings.Headset.fovFactor         = data.fovFactor;
                        AryzonSettings.Calibration.rotatedSensor = data.rotatedSensor;
                        AryzonSettings.Calibration.xShift        = data.xShift;
                        AryzonSettings.Calibration.yShift        = data.yShift;
                        AryzonSettings.Calibration.IPD           = data.IPD;
                        AryzonSettings.Calibration.didCalibrate  = true;

                        AryzonSettings.Instance.Apply();
                        AryzonSettings.Instance.Save();
                        success      = true;
                        returnString = "Successfully retrieved your settings, enjoy!";
                    }
                }
                else
                {
                    returnString = "Invalid code";
                    success      = false;
                }
            }
            if (SettingsRetrieved != null)
            {
                SettingsRetrieved(returnString, success);
            }
        }