private void UpdatePhone_Click(object sender, EventArgs e)
        {
            View        view           = LayoutInflater.From(this).Inflate(Resource.Layout.dialog_phone, null, false);
            AlertDialog dialog         = new AlertDialog.Builder(this).SetView(view).Create();
            EditText    edtCountryCode = view.FindViewById <EditText>(Resource.Id.edtCountryCode);
            EditText    edtAccount     = view.FindViewById <EditText>(Resource.Id.edtAccount);
            EditText    edtVerifyCode  = view.FindViewById <EditText>(Resource.Id.edtVerifyCode);
            Button      btnSend        = view.FindViewById <Button>(Resource.Id.btnSend);
            Button      btnUpdate      = view.FindViewById <Button>(Resource.Id.btnUpdate);

            btnSend.Click += async delegate
            {
                string countryCode = edtCountryCode.Text.ToString().Trim();
                string phoneNumber = edtAccount.Text.ToString().Trim();

                // Build a verify code settings.
                VerifyCodeSettings settings = VerifyCodeSettings.NewBuilder().Action(VerifyCodeSettings.ActionRegisterLogin).Build();
                // Request verify code,and waiting for the verification code to be sent to your mobile phone
                try
                {
                    var requestVerifyCode             = AGConnectAuth.Instance.RequestVerifyCodeAsync(countryCode, phoneNumber, settings);
                    VerifyCodeResult verifyCodeResult = await requestVerifyCode;
                    if (requestVerifyCode.Status.Equals(System.Threading.Tasks.TaskStatus.RanToCompletion))
                    {
                        Toast.MakeText(this, "Send phone verify code success! ", ToastLength.Short).Show();
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
                }
            };

            btnUpdate.Click += async delegate
            {
                string countryCode = edtCountryCode.Text.ToString().Trim();
                string phoneNumber = edtAccount.Text.ToString().Trim();
                string verifyCode  = edtVerifyCode.Text.ToString().Trim();
                if (AGConnectAuth.Instance.CurrentUser != null)
                {
                    // Update phone
                    try
                    {
                        var   requestUpdatePhone = AGConnectAuth.Instance.CurrentUser.UpdatePhoneAsync(countryCode, phoneNumber, verifyCode);
                        await requestUpdatePhone;
                        if (requestUpdatePhone.Status.Equals(System.Threading.Tasks.TaskStatus.RanToCompletion))
                        {
                            Toast.MakeText(this, "Update phone success! ", ToastLength.Short).Show();
                        }
                    }
                    catch (Exception ex)
                    {
                        Toast.MakeText(this, "Update phone failed! " + ex.Message, ToastLength.Short).Show();
                    }
                }
                dialog.Dismiss();
            };
            dialog.Show();
        }
        private void ResetPassword_Click(object sender, EventArgs e)
        {
            View        view           = LayoutInflater.From(this).Inflate(Resource.Layout.dialog_reset_password, null, false);
            AlertDialog dialog         = new AlertDialog.Builder(this).SetView(view).Create();
            EditText    edtEmail       = view.FindViewById <EditText>(Resource.Id.edtEmail);
            EditText    edtNewPassword = view.FindViewById <EditText>(Resource.Id.edtNewPassword);
            EditText    edtVerifyCode  = view.FindViewById <EditText>(Resource.Id.edtVerifyCode);
            Button      btnSend        = view.FindViewById <Button>(Resource.Id.btnSend);
            Button      btnUpdate      = view.FindViewById <Button>(Resource.Id.btnUpdate);

            btnSend.Click += async delegate
            {
                string email = edtEmail.Text.ToString().Trim();
                // Build a verify code settings.
                VerifyCodeSettings settings = VerifyCodeSettings.NewBuilder().Action(VerifyCodeSettings.ActionResetPassword).Build();
                // Request verify code,and waiting for the verification code to be sent to your mobile phone
                try
                {
                    var requestVerifyCode             = AGConnectAuth.Instance.RequestVerifyCodeAsync(email, settings);
                    VerifyCodeResult verifyCodeResult = await requestVerifyCode;
                    if (requestVerifyCode.Status.Equals(System.Threading.Tasks.TaskStatus.RanToCompletion))
                    {
                        Toast.MakeText(this, "Send email verify code success! ", ToastLength.Short).Show();
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
                }
            };

            btnUpdate.Click += async delegate
            {
                string email       = edtEmail.Text.ToString().Trim();
                string newPassword = edtNewPassword.Text.ToString().Trim();
                string verifyCode  = edtVerifyCode.Text.ToString().Trim();
                // Reset password
                try
                {
                    var   resetPasswordResult = AGConnectAuth.Instance.ResetPasswordAsync(email, newPassword, verifyCode);
                    await resetPasswordResult;
                    if (resetPasswordResult.Status.Equals(System.Threading.Tasks.TaskStatus.RanToCompletion))
                    {
                        Toast.MakeText(this, "Password has been reset.", ToastLength.Short).Show();
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, "Reset password failed: " + ex.Message, ToastLength.Long).Show();
                }
                dialog.Dismiss();
            };
            dialog.Show();
        }
示例#3
0
        private async void SendVerificationCode()
        {
            VerifyCodeSettings settings = VerifyCodeSettings.NewBuilder()
                                          .Action(VerifyCodeSettings.ActionRegisterLogin)
                                          .SendInterval(30)
                                          .Locale(Locale.English)
                                          .Build();

            if (type == Type.Email)
            {
                string email = edtAccount.Text.ToString().Trim();

                try
                {
                    var requestVerifyCode             = AGConnectAuth.Instance.RequestVerifyCodeAsync(email, settings);
                    VerifyCodeResult verifyCodeResult = await requestVerifyCode;
                    if (requestVerifyCode.Status.Equals(System.Threading.Tasks.TaskStatus.RanToCompletion))
                    {
                        Toast.MakeText(this, "Send email verify code success! ", ToastLength.Short).Show();
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
                }
            }
            else
            {
                string countryCode = edtCountryCode.Text.ToString().Trim();
                string phoneNumber = edtAccount.Text.ToString().Trim();

                try
                {
                    var requestVerifyCode             = AGConnectAuth.Instance.RequestVerifyCodeAsync(countryCode, phoneNumber, settings);
                    VerifyCodeResult verifyCodeResult = await requestVerifyCode;
                    if (requestVerifyCode.Status.Equals(System.Threading.Tasks.TaskStatus.RanToCompletion))
                    {
                        Toast.MakeText(this, "Send email verify code success! ", ToastLength.Short).Show();
                    }
                }
                catch (Exception ex)
                {
                    Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
                }
            }
        }