wxr
2022-11-11 b2021c30213b9520a0db20d1a4ff892446fea36c
HDL_ON/UI/UI2/4-PersonalCenter/CancelAccountPage.cs
@@ -2,6 +2,7 @@
using Shared;
using HDL_ON.UI.CSS;
using Xamarin.Essentials;
using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
@@ -24,7 +25,277 @@
        /// <summary>
        /// 
        /// </summary>
        public void LoadPage()
        public void LoadPage() {
            var loading = new Loading();
            this.AddChidren(loading);
            loading.Start("");
            new System.Threading.Thread(() => {
                try
                {
                    var pack = new HttpServerRequest().GetUnregisterModel();
                    if (pack.Code == StateCode.SUCCESS)
                    {
                        var data = Newtonsoft.Json.JsonConvert.DeserializeObject<UMode>(pack.Data.ToString());
                        Application.RunOnMainThread(() =>
                        {
                            if (data != null)
                            {
                                if (data.model == "APP")
                                {
                                    InitView_PreRelease();
                                }
                                else
                                {
                                    InitView_Release();
                                }
                            }
                            else
                            {
                                InitView_PreRelease();
                            }
                        });
                    }
                    else
                    {
                        Application.RunOnMainThread(() =>
                        {
                            InitView_PreRelease();
                        });
                    }
                }
                catch
                {
                    Application.RunOnMainThread(() =>
                    {
                        InitView_PreRelease();
                    });
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (loading != null)
                        {
                            loading.Hide();
                            loading.RemoveFromParent();
                            loading = null;
                        }
                    });
                }
            }) { IsBackground = true }.Start();
        }
        public void InitView_PreRelease()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.CancelAccount)).LoadTopView(CSS_Color.MainBackgroundColor);
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            var textView = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(64 + 16),
                Height = Application.GetRealHeight(90),
                Width = Application.GetRealWidth(343),
                Padding = new Padding(Application.GetRealWidth(16), Application.GetRealWidth(16), Application.GetRealWidth(16), Application.GetRealWidth(16)),
                IsMoreLines = true,
                TextSize = CSS_FontSize.TextFontSize,
                TextAlignment = TextAlignment.TopLeft,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Radius = (uint)Application.GetRealHeight(14),
                BackgroundColor = 0x174484F4,
            };
            if (Language.CurrentLanguage == "Chinese")
            {
                textView.Text = "*注销账户是不可恢复的操作,注销账户之后,您App所有账户数据(包括昵称、头像、二维码照片等)都会被删除,且无法再找回。";
            }
            else
            {
                textView.Text = "*Account cancellation is an irreversible operation. After account cancellation, all account data (including nickname, avatar, QR code photo, etc.) of your app will be deleted and cannot be retrieved.";
            }
            bodyView.AddChidren(textView);
            #region 账号填写
            var accountView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(132 + 50),
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(50),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealHeight(25),
            };
            bodyView.AddChidren(accountView);
            var etAccount = new EditText()
            {
                X = Application.GetRealWidth(58),
                Width = Application.GetRealWidth(343 - 68),
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
                PlaceholderTextColor = CSS_Color.PromptingColor1,
                PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber),
                TextAlignment = TextAlignment.CenterLeft,
            };
            accountView.AddChidren(etAccount);
            var btnAccountIcon = new Button()
            {
                X = Application.GetRealWidth(26),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetMinRealAverage(20),
                Height = Application.GetMinRealAverage(20),
                UnSelectedImagePath = "LoginIcon/AccountIcon.png",
            };
            accountView.AddChidren(btnAccountIcon);
            #endregion
            #region 密码填写
            var passwordView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(211 + 40),
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(50),
                Radius = (uint)Application.GetRealHeight(25),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(passwordView);
            var btnPasswordIcon = new Button()
            {
                X = Application.GetRealWidth(26),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetMinRealAverage(20),
                Height = Application.GetMinRealAverage(20),
                UnSelectedImagePath = "LoginIcon/PasswordIcon.png",
            };
            passwordView.AddChidren(btnPasswordIcon);
            var etPassword = new EditText()
            {
                X = Application.GetRealWidth(58),
                Width = Application.GetRealWidth(343 - 68),
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
                PlaceholderTextColor = CSS_Color.PromptingColor1,
                PlaceholderText = Language.StringByID(StringId.PlsEntryPassword),
                SecureTextEntry = true,
                TextAlignment = TextAlignment.CenterLeft,
            };
            passwordView.AddChidren(etPassword);
            #endregion
            var btnLogin = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(403),
                Width = Application.GetRealWidth(220),
                Height = Application.GetRealWidth(44),
                Radius = (uint)Application.GetRealWidth(22),
                SelectedBackgroundColor = CSS_Color.MainColor,
                BackgroundColor = CSS_Color.PromptingColor1,
                TextID = StringId.Cancellation,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.MainBackgroundColor,
                TextAlignment = TextAlignment.Center,
            };
            bodyView.AddChidren(btnLogin);
            string account = "";
            etAccount.TextChangeEventHandler = (sender, e) =>
            {
                account = etAccount.Text.Trim();
                if (account.Length > 0 && etPassword.Text.Trim().Length > 0)
                {
                    btnLogin.IsSelected = true;
                }
                else
                {
                    btnLogin.IsSelected = false;
                }
            };
            etPassword.TextChangeEventHandler += (sender, e) =>
            {
                if (etAccount.Text.Trim().Length > 0 && etPassword.Text.Trim().Length > 0)
                {
                    btnLogin.IsSelected = true;
                }
                else
                {
                    btnLogin.IsSelected = false;
                }
            };
            btnLogin.MouseUpEventHandler = (sender,e) =>{
                if (btnLogin.IsSelected)
                {
                    var tipMsg = "*您当前正在注销账户,注销完成后,您在On Pro App的所有数据均会被删除,请谨慎操作。";
                    Action action = () => {
                        var loading = new Loading();
                        this.AddChidren(loading);
                        loading.Start("");
                        var pwd = etPassword.Text.Trim();
                        new System.Threading.Thread(() => {
                            try
                            {
                                var pack = new HttpServerRequest().Unregister(pwd);
                                Application.RunOnMainThread(() =>
                                {
                                    if (pack.Code == StateCode.SUCCESS)
                                    {
                                        //Action okAction = () =>
                                        //{
                                            HDLCommon.Current.Logout();
                                        //};
                                        //new ConfirmDialog().ShowDialog(StringId.Tip, StringId.IfConfirmLogout, okAction);
                                    }
                                    else
                                    {
                                        var tip = new Tip()
                                        {
                                            Text = pack.message,
                                            CloseTime = 3,
                                            Direction = AMPopTipDirection.None
                                        };
                                        tip.Show(bodyView);
                                    }
                                });
                            }
                            catch
                            {
                            }
                            finally
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    if (loading != null)
                                    {
                                        loading.Hide();
                                        loading.RemoveFromParent();
                                        loading = null;
                                    }
                                });
                            }
                        })
                        { IsBackground = true }.Start();
                    };
                    new PublicAssmebly().TipOptionMsg(StringId.CancelAccount, tipMsg, action, 20);
                }
            };
        }
        public void InitView_Release()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.CancelAccount)).LoadTopView();
@@ -206,4 +477,16 @@
    }
    class UMode
    {
        public string appCode;
        public string version;
        public string releaseSystem;
        /// <summary>
        /// APP :用户在app上自助注销
        /// APPLY : 用户发邮件给公司申请注销
        /// </summary>
        public string model;
    }
}