IEnumerator _loadCoroutine(string key, Completer completer, Isolate isolate) { var url = new Uri(key); using (var www = UnityWebRequest.Get(url)) { if (headers != null) { foreach (var header in headers) { www.SetRequestHeader(header.Key, header.Value); } } yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { completer.completeError(new Exception($"Failed to load from url \"{url}\": {www.error}")); yield break; } var data = www.downloadHandler.data; using (Isolate.getScope(isolate)) { completer.complete(data); } } }
IEnumerator _loadCoroutine(string key, Completer completer, Isolate isolate) { var url = _urlFromKey(key); using (var www = UnityWebRequest.Get(url)) { if (headers != null) { foreach (var header in headers) { www.SetRequestHeader(header.Key, header.Value); } } yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { completer.completeError(new UIWidgetsError(new List <DiagnosticsNode>() { new ErrorSummary($"Unable to load asset: {key}"), new StringProperty("HTTP status code", www.error) })); yield break; } var data = www.downloadHandler.data; using (Isolate.getScope(isolate)) { completer.complete(data); } } }
void _handleMethodCall(string method, List <JSONNode> args) { if (TextInput._currentConnection == null) { return; } int client = args[0].AsInt; if (client != TextInput._currentConnection._id) { return; } using (Isolate.getScope(TextInput._currentConnection.isolate)) { switch (method) { case "TextInputClient.updateEditingState": TextInput._updateEditingState(client, TextEditingValue.fromJSON(args[1].AsObject)); break; case "TextInputClient.performAction": TextInput._performAction(client, TextInputUtils._toTextInputAction(args[1].Value)); break; default: throw new UIWidgetsError($"unknown method ${method}"); } } }
public static Future <R> compute <Q, R>(ComputeCallback <Q, R> callback, Q message, string debugLabel = null) { var completer = Completer.create(); var isolate = Isolate.current; var backgroundWorker = new BackgroundWorker(); backgroundWorker.DoWork += (sender, args) => { args.Result = callback((Q)args.Argument); }; backgroundWorker.RunWorkerCompleted += (o, a) => { if (!isolate.isValid) { return; } using (Isolate.getScope(isolate)) { if (a.Error != null) { completer.completeError(a.Error); } else { completer.complete(FutureOr.value((R)a.Result)); } } }; backgroundWorker.RunWorkerAsync(message); return(completer.future.to <R>()); }
void _handleViewMetricsChanged(string method, List <JSONNode> args) { using (Isolate.getScope(anyIsolate)) { _wrapper.displayMetrics.onViewMetricsChanged(); Window.instance.updateSafeArea(); Window.instance.onMetricsChanged?.Invoke(); } }
void _handleStateChanged(State state) { if (Window.instance._panel != null) { _innerStateChanged(state: state); } else { var isolate = Isolate.current; using (Isolate.getScope(isolate: isolate)) { _innerStateChanged(state: state); } } }
public override Widget build(BuildContext context) { var isolate = Isolate.current; return(new Column( crossAxisAlignment: CrossAxisAlignment.start, children: new List <Widget>() { new FlatButton(child: new Text("Click To Get Time"), onPressed: () => { UnityWebRequest www = UnityWebRequest.Get("http://worldclockapi.com/api/json/est/now"); var asyncOperation = www.SendWebRequest(); asyncOperation.completed += operation => { var timeData = JsonUtility.FromJson <TimeData>(www.downloadHandler.text); using (Isolate.getScope(isolate)) { this.setState(() => { this._fileTime = timeData.currentFileTime; }); } }; }), new Text($"current file time: {this._fileTime}") })); }