void Clear(PromptCallback callback) { string input = prompt.GetComponentInChildren <InputField>().text; prompt.GetComponent <Image>().CrossFadeAlpha(0f, 0.5f, false); prompt.GetComponentInChildren <Text>().CrossFadeAlpha(2f, 0.5f, false); GameObject.Destroy(prompt, 0.5f); prompt = null; callback(input); }
public static GameObject CreatePrompt(PromptCallback _cb = null) { var prefab = Resources.Load("UI Prefabs/Name Prompt Panel"); var p_c = GameObject.FindObjectOfType <Canvas>(); GameObject prompt_object = (GameObject)Instantiate(prefab); prompt_object.transform.SetParent(p_c.transform, false); if (_cb != null) { prompt_object.GetComponent <TextPrompt>().AddCallback(_cb); } return(prompt_object); }
public void Prompt(string message, PromptCallback callback) { if (prompt) { StartCoroutine(ProcrastinatePrompt(1, message, callback)); return; } prompt = GameObject.Instantiate(promptPrefab, gameObject.transform.parent.transform); prompt.GetComponent <Image>().CrossFadeAlpha(0f, 0, true); prompt.GetComponentInChildren <Text>().CrossFadeAlpha(0f, 0, true); prompt.GetComponent <Image>().CrossFadeAlpha(2f, 0.5f, false); prompt.GetComponentInChildren <Text>().CrossFadeAlpha(2f, 0.5f, false); prompt.GetComponentInChildren <Text>().text = message; prompt.GetComponentInChildren <Button>().onClick.AddListener(() => Clear(callback)); }
private async Task <PromptResult> InternalPromptAsync(string controlID, List <CallMedia> play, CallCollect collect) { await API.API.SetupAsync(); PromptResult resultPrompt = new PromptResult(); TaskCompletionSource <bool> tcsCompletion = new TaskCompletionSource <bool>(); // Hook callbacks temporarily to catch required events PlayErrorCallback errorCallback = (a, c, e, p) => { resultPrompt.Event = new Event(e.EventType, JObject.FromObject(p)); tcsCompletion.SetResult(false); }; PromptCallback promptCallback = (a, c, e, p) => { resultPrompt.Event = new Event(e.EventType, JObject.FromObject(p)); resultPrompt.Type = p.Result.Type; switch (resultPrompt.Type) { case CallCollectType.digit: { CallingEventParams.CollectParams.ResultParams.DigitParams digitParams = p.Result.ParametersAs <CallingEventParams.CollectParams.ResultParams.DigitParams>(); resultPrompt.Result = digitParams.Digits; resultPrompt.Terminator = digitParams.Terminator; tcsCompletion.SetResult(true); break; } case CallCollectType.speech: { CallingEventParams.CollectParams.ResultParams.SpeechParams speechParams = p.Result.ParametersAs <CallingEventParams.CollectParams.ResultParams.SpeechParams>(); resultPrompt.Result = speechParams.Text; resultPrompt.Confidence = speechParams.Confidence; tcsCompletion.SetResult(true); break; } default: { tcsCompletion.SetResult(false); break; } } }; OnPlayError += errorCallback; OnPrompt += promptCallback; try { Task <LL_PlayAndCollectResult> taskLLPlayAndCollect = mAPI.LL_PlayAndCollectAsync(new LL_PlayAndCollectParams() { NodeID = mNodeID, CallID = mID, ControlID = controlID, Play = play, Collect = collect, }); // The use of await rethrows exceptions from the task LL_PlayAndCollectResult resultLLPlayAndCollect = await taskLLPlayAndCollect; if (resultLLPlayAndCollect.Code == "200") { mLogger.LogDebug("Prompt {0} for call {1} waiting for completion events", controlID, ID); resultPrompt.Successful = await tcsCompletion.Task; mLogger.LogDebug("Prompt {0} for call {1} {2}", controlID, ID, resultPrompt.Successful ? "successful" : "unsuccessful"); } } catch (Exception exc) { mLogger.LogError(exc, "Prompt {0} for call {1} exception", controlID, ID); } // Unhook temporary callbacks OnPlayError -= errorCallback; OnPrompt -= promptCallback; return(resultPrompt); }
public SimplePrompt(PromptCallback callback, bool callbackHandlesCancel = false) { m_Callback = callback; m_CallbackHandlesCancel = callbackHandlesCancel; }
public SimplePrompt(PromptCallback callback, PromptCallback cancelCallback) { m_Callback = callback; m_CancelCallback = cancelCallback; }
public void AddCallback(PromptCallback _cb) { callback += _cb; }
IEnumerator ProcrastinatePrompt(int delaySeconds, string toastContent, PromptCallback callback) { yield return(new WaitForSeconds(delaySeconds)); Prompt(toastContent, callback); }