Exemple #1
0
        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;
        }
Exemple #3
0
        /// <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);
 }
Exemple #5
0
 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));
 }