xm
2020-07-21 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d
ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordUserEditorForm.cs
New file
@@ -0,0 +1,179 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.Safety
{
    /// <summary>
    /// 编辑安防用户密码的界面
    /// </summary>
    public class PasswordUserEditorForm : EditorCommonForm
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 用户账号
        /// </summary>
        private int pswNo = 0;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        /// <param name="i_pswNo">用户密码编号</param>
        /// <param name="i_password">用户密码</param>
        /// <param name="i_passwordTip">用户密码提示</param>
        public void ShowForm(int i_pswNo, string i_password, string i_passwordTip)
        {
            this.pswNo = i_pswNo;
            this.ScrollEnabled = false;
            //设置头部信息
            base.SetTitleText(i_passwordTip);
            //初始化中部信息
            this.InitMiddleFrame(i_password, i_passwordTip);
        }
        /// <summary>
        /// 初始化中部信息
        /// </summary>
        /// <param name="i_password">用户密码</param>
        /// <param name="i_passwordTip">用户密码提示</param>
        private void InitMiddleFrame(string i_password, string i_passwordTip)
        {
            //清空bodyFrame
            this.ClearBodyFrame();
            var listBackControl = new VerticalFrameControl();
            listBackControl.Height = bodyFrameLayout.Height;
            bodyFrameLayout.AddChidren(listBackControl);
            var frameback = new FrameLayout();
            frameback.Y = Application.GetRealHeight(179);
            frameback.Height = Application.GetRealHeight(395);
            frameback.Width = Application.GetRealWidth(717);
            frameback.Gravity = Gravity.CenterHorizontal;
            frameback.BackgroundImagePath = "Safeguard/SafeguardPasswordGround.png";
            listBackControl.frameTable.AddChidren(frameback);
            //当前使用密码
            var btnNowTip = new NormalViewControl(frameback.Width, Application.GetRealHeight(50), false);
            btnNowTip.Y = Application.GetRealHeight(81);
            btnNowTip.TextSize = 12;
            btnNowTip.TextAlignment = TextAlignment.Center;
            btnNowTip.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnNowTip.TextID = R.MyInternationalizationString.uNowUsePassword;
            frameback.AddChidren(btnNowTip);
            var btnPassword = new NormalViewControl(frameback.Width, Application.GetRealHeight(90), false);
            btnPassword.TextAlignment = TextAlignment.Center;
            btnPassword.Y = Application.GetRealHeight(150);
            btnPassword.TextSize = 24;
            btnPassword.TextColor = 0xfffc744b;
            btnPassword.Text = i_password;
            frameback.AddChidren(btnPassword);
            //初始化桌布
            var tableContr = new InformationEditorControl();
            var listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 1025);
            //备注信息
            string caption = Language.StringByID(R.MyInternationalizationString.uNoteInformation);
            var rowNote = new FrameCaptionInputControl(caption, i_passwordTip, listview.rowSpace / 2);
            rowNote.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPlesaeInputNoteInformation);
            rowNote.txtInput.MaxByte = 90;
            listview.AddChidren(rowNote);
            rowNote.InitControl();
            rowNote.AddBottomLine();
            rowNote.txtInput.FinishInputEvent += async () =>
            {
                if (rowNote.Text == string.Empty)
                {
                    rowNote.Text = i_passwordTip;
                    return;
                }
                if (i_passwordTip != rowNote.Text)
                {
                    //修改密码备注
                    var result = await this.EditorPassworTip(i_password, rowNote.Text, true);
                    if (result == true)
                    {
                        i_passwordTip = rowNote.Text;
                    }
                }
            };
            //修改密码
            var rowPsw = new FrameRowControl(listview.rowSpace / 2);
            listview.AddChidren(rowPsw);
            rowPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uChangedPassword), 300);
            rowPsw.AddRightArrow();
            rowPsw.AddBottomLine();
            rowPsw.ButtonClickEvent += (sender, e) =>
            {
                var form = new PasswordAddNewForm();
                form.AddForm(this.pswNo, rowNote.Text);
                form.PasswordChangedEvent += (newPassword) =>
                {
                    btnPassword.Text = newPassword;
                    i_password = newPassword;
                };
            };
            //初始化桌布完成
            tableContr.FinishInitControl();
            tableContr = null;
            //重写底层返回按键的事件
            this.BackButtonClickEvent = async (sender) =>
            {
                sender.CanClick = false;
                if (rowNote.Text == string.Empty || i_passwordTip == rowNote.Text)
                {
                    this.CloseForm();
                }
                else
                {
                    //修改密码备注
                    var result = await this.EditorPassworTip(i_password, rowNote.Text, false);
                    sender.CanClick = true;
                    if (result == true)
                    {
                        this.CloseForm();
                    }
                }
            };
        }
        #endregion
        #region ■ 修改备注___________________________
        /// <summary>
        /// 修改密码备注
        /// </summary>
        /// <param name="i_password">用户密码</param>
        /// <param name="i_passwordTip">用户密码提示</param>
        private async System.Threading.Tasks.Task<bool> EditorPassworTip(string i_password, string i_passwordTip, bool ShowMsg)
        {
            var result = await HdlSafeguardLogic.Current.AddPassWordTips(this.pswNo, i_password, i_passwordTip);
            if (result == true)
            {
                if (ShowMsg == true)
                {
                    //修改备注信息成功!
                    string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationSuccess);
                    this.ShowMassage(ShowMsgType.Tip, msg);
                }
                //设置头部信息
                base.SetTitleText(i_passwordTip);
            }
            return result;
        }
        #endregion
    }
}