From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 21 七月 2020 09:46:53 +0800
Subject: [PATCH] 请合并最新多功能面板代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs |  400 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 400 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs
new file mode 100755
index 0000000..0cbe83e
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs
@@ -0,0 +1,400 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 缂栬緫鑳佽揩瀵嗙爜鐨勭晫闈�
+    /// </summary>
+    public class CoercePswEditorForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鐢ㄦ埛璐﹀彿
+        /// </summary>
+        private int pswNo = 5;
+        /// <summary>
+        /// 瀵嗙爜
+        /// </summary>
+        private string password = string.Empty;
+        /// <summary>
+        /// 瀵嗙爜鎻愮ず
+        /// </summary>
+        private string passwordTip = string.Empty;
+        /// <summary>
+        /// 鑱旂郴浜虹殑鍒楄〃鎺т欢
+        /// </summary>
+        private FrameListControl listPhoneView = null;
+        /// <summary>
+        /// 淇℃伅鎺т欢
+        /// </summary>
+        private InformationEditorControl tableContr = null;
+        /// <summary>
+        /// 瀵嗙爜鎺т欢
+        /// </summary>
+        private NormalViewControl btnPassword = null;
+        /// <summary>
+        /// 褰撳墠鐨勮仈绯讳汉鍒楄〃
+        /// </summary>
+        private List<ZigBee.Device.Safeguard.PushTargetInfo> listPhoneData = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param>
+        public void ShowForm(string i_password, string i_passwordTip)
+        {
+            this.password = i_password;
+            this.passwordTip = i_passwordTip;
+            this.ScrollEnabled = false;
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePassword));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(i_password);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        private void InitMiddleFrame(string i_password)
+        {
+            //娓呯┖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);
+            this.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;
+            btnPassword.IsBold = true;
+            frameback.AddChidren(btnPassword);
+
+            //鍒濆鍖栧垪琛ㄦ帶浠�
+            this.InitListViewControl(listBackControl);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧垪琛ㄦ帶浠�
+        /// </summary>
+        private void InitListViewControl(VerticalFrameControl listBackControl)
+        {
+            //鍒濆鍖栨甯�
+            this.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, 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 = passwordTip;
+                    return;
+                }
+                if (passwordTip != rowNote.Text)
+                {
+                    //淇敼瀵嗙爜澶囨敞
+                    await this.EditorPassworTip(password, rowNote.Text, true);
+                }
+            };
+
+            //淇敼瀵嗙爜
+            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 CoercePswAddNewForm();
+                form.AddForm(rowNote.Text);
+                form.PasswordChangedEvent += (newPassword) =>
+                {
+                    this.btnPassword.Text = newPassword;
+                    this.password = newPassword;
+                };
+            };
+
+            //鍒濆鍖栬仈绯讳汉鎺т欢
+            this.InitPhoneControl(listView);
+
+            //閲嶅啓搴曞眰鐨勮繑鍥炴寜閿簨浠�
+            this.BackButtonClickEvent = async (sender) =>
+             {
+                 sender.CanClick = false;
+                 if (rowNote.Text == string.Empty || passwordTip == rowNote.Text)
+                 {
+                     this.CloseForm();
+                 }
+                 else
+                 {
+                     //淇敼瀵嗙爜澶囨敞
+                     var result = await this.EditorPassworTip(password, rowNote.Text, false);
+                     sender.CanClick = true;
+                     if (result == true)
+                     {
+                         this.CloseForm();
+                     }
+                 }
+             };
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栬仈绯讳汉鎺т欢___________________
+
+        /// <summary>
+        /// 鍒濆鍖栬仈绯讳汉鎺т欢
+        /// </summary>
+        private void InitPhoneControl(FrameListControl listTableView)
+        {
+            //鑱旂郴浜虹殑鍒楄〃鎺т欢
+            if (listPhoneView == null)
+            {
+                this.listPhoneView = new FrameListControl();
+                listPhoneView.rowSpace = listTableView.rowSpace;
+                listPhoneView.Height = Application.GetRealHeight(200);
+                listTableView.AddChidren(listPhoneView);
+                listPhoneView.Y -= listTableView.rowSpace;
+            }
+            else
+            {
+                this.listPhoneView.RemoveAll();
+            }
+
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //寮�鍚繘搴︽潯
+                this.ShowProgressBar();
+                //鑾峰彇鑱旂郴鏂瑰紡
+                var result = await HdlSafeguardLogic.Current.GetCoercePhoneNumber();
+                if (result == null)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar(ShowReLoadMode.YES);
+                    return;
+                }
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    this.listPhoneData = new List<ZigBee.Device.Safeguard.PushTargetInfo>();
+                    //鑱旂郴浜�
+                    var rowContact = new FrameRowControl(this.listPhoneView.rowSpace / 2);
+                    rowContact.UseClickStatu = false;
+                    listPhoneView.AddChidren(rowContact);
+                    rowContact.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uContactPersion), 300);
+                    var btnAdd = rowContact.AddMostRightEmptyIcon(81, 81);
+                    btnAdd.UnSelectedImagePath = "Item/Add.png";
+                    rowContact.ButtonClickEvent += (sender, e) =>
+                    {
+                        var form = new CoercePswAddContactForm();
+                        form.AddForm(listPhoneData);
+                        form.AddPhoneEvent += () =>
+                        {
+                            //閲嶆柊鍒锋柊
+                            this.InitPhoneControl(listTableView);
+                        };
+                    };
+
+                    if (result.Actions.Count > 0)
+                    {
+                        listPhoneData = result.Actions[0].PushTarget;
+                        foreach (var data in listPhoneData)
+                        {
+                            //娣诲姞鑱旂郴浜鸿
+                            this.AddPhoneNumRowLayout(data);
+                        }
+                    }
+                    else
+                    {
+                        //娌℃湁鑱旂郴浜虹殑璇�,娣诲姞涓簳绾�
+                        rowContact.AddBottomLine();
+                    }
+                    //璋冩暣妗屽竷澶у皬
+                    this.AdjustPhoneContrlTable();
+                });
+            });
+        }
+
+        /// <summary>
+        /// 璋冩暣妗屽竷澶у皬
+        /// </summary>
+        private void AdjustPhoneContrlTable()
+        {
+            //璋冩暣妗屽竷
+            listPhoneView.AdjustRealHeight();
+            tableContr.FinishInitControl(false, true);
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鑱旂郴浜鸿_______________________
+
+        /// <summary>
+        /// 娣诲姞鑱旂郴浜鸿
+        /// </summary>
+        /// <param name="data"></param>
+        private void AddPhoneNumRowLayout(ZigBee.Device.Safeguard.PushTargetInfo data)
+        {
+            var strArry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
+            if (strArry.Length != 2)
+            {
+                return;
+            }
+            string areaCode2 = strArry[0];
+            string phoneNum = strArry[1];
+
+            string strPhone = "+" + areaCode2 + " " + phoneNum;
+            if (phoneNum.Length >= 11)
+            {
+                phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 7, '*') + phoneNum.Substring(phoneNum.Length - 4, 4);
+                strPhone = "+" + areaCode2 + " " + phoneNum;
+            }
+            else if (phoneNum.Length >= 5)
+            {
+                //鎴栬杩欐槸鍥藉鐨勬墜鏈哄惂
+                phoneNum = phoneNum.Substring(0, 3) + "".PadLeft(phoneNum.Length - 5, '*') + phoneNum.Substring(phoneNum.Length - 2, 2);
+                strPhone = "+" + areaCode2 + " " + phoneNum;
+            }
+
+            var rowContact = new RowLayoutControl();
+            rowContact.MainKeys = strPhone;
+            this.listPhoneView.AddChidren(rowContact);
+            rowContact.frameTable.UseClickStatu = false;
+            //鑱旂郴鏂瑰紡
+            rowContact.frameTable.AddLeftCaption(strPhone + " (" + data.PushNumberNote + ")", 800);
+            rowContact.frameTable.AddBottomLine();
+            //鍒犻櫎
+            var btnDetete = rowContact.AddDeleteControl();
+            btnDetete.ButtonClickEvent += (sender, e) =>
+            {
+                string[] Arry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
+                string PNumber = string.Empty;
+                string areaCode = string.Empty;
+                if (Arry.Length == 1)
+                {
+                    PNumber = Arry[0];
+                }
+                else
+                {
+                    areaCode = Arry[0];
+                    PNumber = Arry[1];
+                }
+                string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
+                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                {
+                    //鍒犻櫎鑱旂郴浜烘柟寮�
+                    this.DeleteCoercePhoneNumber(areaCode, PNumber, rowContact);
+                });
+            };
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鑱旂郴浜烘柟寮�
+        /// </summary>
+        /// <param name="areaCode"></param>
+        /// <param name="phone"></param>
+        /// <param name="rowContact"></param>
+        public async void DeleteCoercePhoneNumber(string areaCode, string phone, RowLayoutControl rowContact)
+        {
+            bool result = await HdlSafeguardLogic.Current.DeleteCoercePhoneNumber(areaCode, phone);
+            if (result == true)
+            {
+                bool canMove = false;
+                for (int i = 0; i < this.listPhoneView.ChildrenCount; i++)
+                {
+                    var myRow = this.listPhoneView.GetChildren(i) as RowLayoutControl;
+                    if (myRow != null && myRow.MainKeys == rowContact.MainKeys)
+                    {
+                        //寰幆鍒颁簡褰撳墠鎺т欢
+                        canMove = true;
+                        continue;
+                    }
+                    if (canMove == true)
+                    {
+                        //瀹冧箣鍚庣殑鎺т欢鍏ㄩ儴寰�涓婄Щ鍔�
+                        myRow.Y -= rowContact.Height;
+                    }
+                }
+                rowContact.RemoveFromParent();
+
+                //绉婚櫎缂撳瓨
+                string checkKeys = areaCode + "-" + phone;
+                for (int i = 0; i < this.listPhoneData.Count; i++)
+                {
+                    if (listPhoneData[i].PushNumber == checkKeys)
+                    {
+                        listPhoneData.RemoveAt(i);
+                    }
+                }
+                //璋冩暣妗屽竷澶у皬
+                this.AdjustPhoneContrlTable();
+            }
+        }
+
+        #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);
+                }
+
+                this.passwordTip = i_passwordTip;
+            }
+            return result;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0