private void ResolveForgotPassword()
        {
            var adb = new IONAlertDialog(this);

            adb.SetTitle(Resource.String.portal_password_reset);
            var view = LayoutInflater.From(this).Inflate(Resource.Layout.dialog_portal_password_reset, null, false);

            adb.SetView(view);
            adb.SetCancelable(true);

            var edit = view.FindViewById <EditText>(Resource.Id.password);

            var d = adb.Show();

            view.FindViewById(Resource.Id.cancel).Click += (sender, e) => {
                d.Dismiss();
            };

            view.FindViewById(Resource.Id.ok).Click += async(sender, e) => {
                if (!string.IsNullOrEmpty(edit.Text))
                {
                    var pd = new ProgressDialog(this);
                    pd.SetTitle(Resource.String.working);
                    pd.SetMessage(GetString(Resource.String.please_wait));
                    pd.SetCancelable(false);
                    pd.Show();

                    var response = await ion.portal.RequestResetUserPasswordAsync(edit.Text);

                    if (response.success)
                    {
                        Toast.MakeText(this, Resource.String.portal_password_reset_sent, ToastLength.Long).Show();
                        d.Dismiss();
                    }
                    else
                    {
                        Toast.MakeText(this, Resource.String.portal_error_failed_to_login, ToastLength.Long).Show();
                    }

                    pd.Dismiss();
                }
                else
                {
                    Toast.MakeText(this, Resource.String.portal_error_email_invalid, ToastLength.Long).Show();
                }
            };
        }
Пример #2
0
        public Dialog Show()
        {
            var view = LayoutInflater.From(context).Inflate(Resource.Layout.dialog_report_export_options, null, false);

            var tabHost = view.FindViewById <TabHost>(Android.Resource.Id.TabHost);
            var tab1    = view.FindViewById(Resource.Id.tab_1);
            var tab2    = view.FindViewById(Resource.Id.tab_2);

            var adb = new IONAlertDialog(context);

            adb.SetTitle(Resource.String.report_choose_export_format);
            adb.SetView(view);
            adb.SetNegativeButton(Resource.String.cancel, (sender, e) => {
            });
            adb.SetPositiveButton(Resource.String.export, (sender, e) => {
                Toast.MakeText(context, "EXPORT", ToastLength.Long).Show();
            });
            var ret = adb.Create();

            ret.Show();
            return(ret);
        }
        private void ResolveRegister()
        {
            var adb = new IONAlertDialog(this);

            adb.SetTitle(Resource.String.register);
            var view = LayoutInflater.From(this).Inflate(Resource.Layout.dialog_portal_register, null, false);

            adb.SetView(view);
            adb.SetCancelable(true);

            var email           = view.FindViewById <EditText>(Resource.Id.email);
            var password        = view.FindViewById <EditText>(Resource.Id.password);
            var passwordConfirm = view.FindViewById <EditText>(Resource.Id.passwordConfirm);
            var icon            = view.FindViewById <ImageView>(Resource.Id.icon);

            password.TextChanged += (sender, e) => {
                if (password.Text.Equals(passwordConfirm.Text) && ion.portal.IsPasswordValid(password.Text))
                {
                    icon.SetColorFilter(Android.Graphics.Color.Green);
                    icon.SetImageBitmap(cache.GetBitmap(Resource.Drawable.ic_check));
                }
                else
                {
                    icon.SetColorFilter(Android.Graphics.Color.Red);
                    icon.SetImageBitmap(cache.GetBitmap(Resource.Drawable.ic_x));
                }
            };

            passwordConfirm.TextChanged += (sender, e) => {
                if (password.Text.Equals(passwordConfirm.Text) && ion.portal.IsPasswordValid(password.Text))
                {
                    icon.SetColorFilter(Android.Graphics.Color.Green);
                    icon.SetImageBitmap(cache.GetBitmap(Resource.Drawable.ic_check));
                }
                else
                {
                    icon.SetColorFilter(Android.Graphics.Color.Red);
                    icon.SetImageBitmap(cache.GetBitmap(Resource.Drawable.ic_x));
                }
            };

            icon.Click += (sender, e) => {
                var dialog = new IONAlertDialog(this);
                dialog.SetMessage(GetString(Resource.String.portal_error_password_invalid));
                dialog.SetCancelable(true);
                dialog.SetNegativeButton(Resource.String.cancel, (sender2, e2) => {});
                dialog.Show();
            };

            var d = adb.Show();

            view.FindViewById(Resource.Id.cancel).Click += (sender, e) => {
                d.Dismiss();
            };

            view.FindViewById(Resource.Id.register).Click += async(sender, e) => {
                if (string.IsNullOrEmpty(email.Text))
                {
                    Toast.MakeText(this, Resource.String.portal_error_email_invalid, ToastLength.Long).Show();
                    return;
                }

                if (!password.Text.Equals(passwordConfirm.Text))
                {
                    Toast.MakeText(this, Resource.String.portal_error_passwords_dont_match, ToastLength.Long).Show();
                    return;
                }

                if (!ion.portal.IsPasswordValid(password.Text))
                {
                    Toast.MakeText(this, Resource.String.portal_error_password_invalid, ToastLength.Long).Show();
                    return;
                }

                if (password.Text.Equals(passwordConfirm.Text))
                {
                    var pd = new ProgressDialog(this);
                    pd.SetTitle(Resource.String.working);
                    pd.SetMessage(GetString(Resource.String.please_wait));
                    pd.SetCancelable(false);
                    pd.Show();

                    var response = await ion.portal.RegisterUser(email.Text, password.Text);

                    if (response.success)
                    {
                        Toast.MakeText(this, Resource.String.portal_password_reset_sent, ToastLength.Long).Show();
                        this.username.Text = email.Text;
                        this.password.Text = password.Text;
                        d.Dismiss();
                    }
                    else
                    {
                        Toast.MakeText(this, response.message, ToastLength.Long).Show();
                    }

                    pd.Dismiss();
                }
                else
                {
                    Toast.MakeText(this, Resource.String.portal_error_passwords_dont_match, ToastLength.Long).Show();
                }
            };
        }