private InputTypes GetInputType(DialogInputType type) { switch (type) { case DialogInputType.Email: return(InputTypes.TextVariationEmailAddress); default: return(InputTypes.TextVariationNormal); } }
public PurchaseDialog(DialogInputType type, ObservableCollection <StoreProduct> options) { if (options == null || options.Count < 3) { throw new ArgumentNullException("options must contain at least 3 StoreProduct items."); } InitializeComponent(); DataContext = this; _type = type; Options = options; }
/// <summary> /// ShowMessage /// </summary> /// <returns></returns> public async Task <string> ShowInputDialog(string title, string hint = null, string messageInput = null, // ReSharper disable once MethodOverloadWithOptionalParameter DialogInputType type = DialogInputType.None, bool isEmpty = false) { var tcs = new TaskCompletionSource <string>(); CrossCurrentActivity.Current.Activity.RunOnUiThread(() => { var builder = new AlertDialog.Builder(CrossCurrentActivity.Current.Activity); var input = new EditText(CrossCurrentActivity.Current.Activity); var lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); lp.SetMargins((int)ConvertScreenValue.ConvertDpToPixel(20, CrossCurrentActivity.Current.Activity), 0, (int)ConvertScreenValue.ConvertDpToPixel(20, CrossCurrentActivity.Current.Activity), 0); input.LayoutParameters = lp; input.SetMaxLines(1); input.SetSingleLine(true); input.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(25) }); input.Text = string.IsNullOrEmpty(messageInput) || isEmpty ? string.Empty : messageInput; input.Hint = string.IsNullOrEmpty(messageInput) && !string.IsNullOrEmpty(hint) ? hint : string.Empty; input.InputType = GetInputType(type); var view = new LinearLayout(CrossCurrentActivity.Current.Activity); var lpView = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); view.LayoutParameters = lpView; view.AddView(input); view.Touch += (sender, args) => KeyboardManager.HideKeyboard(CrossCurrentActivity.Current.Activity, view); view.Click += (sender, args) => KeyboardManager.HideKeyboard(CrossCurrentActivity.Current.Activity, view); var dlg = new Dialog(CrossCurrentActivity.Current.Activity); var dlg1 = dlg; builder.SetTitle(title) .SetView(view) .SetPositiveButton("OK", (s, args) => { KeyboardManager.HideKeyboard(CrossCurrentActivity.Current.Activity, view); tcs.TrySetResult(input.Text); dlg1.Dismiss(); }) .SetNegativeButton("Cancel", (s, args) => { KeyboardManager.HideKeyboard(CrossCurrentActivity.Current.Activity, view); tcs.TrySetResult(null); dlg1.Dismiss(); }); dlg = builder.Create(); dlg.Show(); }); return(await tcs.Task); }
private Visibility ConvertDialogTypeToVisibility(DialogInputType type) { return((_type == type) ? Visibility.Visible : Visibility.Collapsed); }
public async Task <string> ShowInputDialog(string title, string hint = null, string messageInput = null, DialogInputType type = DialogInputType.None, bool isEmpty = false) { return(await ShowInputDialog(title, hint, messageInput, isEmpty)); }