static IEnumerator DownloadRoutine <T>(string dataSetUrl, Action <T> callback) where T : class
    {
        if (!string.IsNullOrEmpty(dataSetUrl))
        {
            UnityWebRequest dataSetRequest = new UnityWebRequest(dataSetUrl);
            dataSetRequest.downloadHandler = new DownloadHandlerBuffer();
            yield return(dataSetRequest.SendWebRequest());

            if (!string.IsNullOrEmpty(dataSetRequest.error))
            {
                Debug.LogError(dataSetRequest.error);
                ToastBehaviour toast = GameObject.FindObjectOfType <ToastBehaviour>();
                if (toast)
                {
                    toast.ShowToast(UNABLE_TO_REACH_SERVER, TOAST_TTL);
                }
                callback.Invoke(null as T);
                yield break;
            }
            string jsonData = dataSetRequest.downloadHandler.text;
            T      data     = JsonUtility.FromJson <T>(jsonData);
            if (data != null)
            {
                callback.Invoke(data as T);
            }
            else
            {
                Debug.LogError("Failed to parse remote dataset into " + typeof(T).Name + " " + jsonData);
            }
        }
    }
Example #2
0
        public static void ShowSpotify(ToastBehaviour behaviour)
        {
            ToastWindowViewModel toastWindowViewModel = new ToastWindowViewModel(behaviour, ToastType.Spotify)
            {
                Toast = new SpotifyToastViewModel()
            };

            ShowToast(toastWindowViewModel);
        }
Example #3
0
        public static void ShowError(string message, ToastBehaviour behaviour)
        {
            ToastWindowViewModel toastWindowViewModel = new ToastWindowViewModel(behaviour, ToastType.Error)
            {
                Toast = new ErrorToastViewModel(message)
            };

            ShowToast(toastWindowViewModel);
        }
Example #4
0
        public static void ShowError(Exception exception, ToastBehaviour behaviour)
        {
            ToastWindowViewModel toastWindowViewModel = new ToastWindowViewModel(behaviour, ToastType.Error)
            {
                Toast = new ErrorToastViewModel(exception)
            };

            ShowToast(toastWindowViewModel);
        }
Example #5
0
        public static void ShowWarning(ToastBehaviour behaviour)
        {
            ToastWindowViewModel toastWindowViewModel = new ToastWindowViewModel(behaviour, ToastType.Warning)
            {
                Toast = new WarningToastViewModel()
            };

            ShowToast(toastWindowViewModel);
        }
 public ToastWindowViewModel(ToastBehaviour behaviour, ToastType type)
 {
     Behaviour = behaviour;
     Type      = type;
 }