From b02e8275a21dc06bf54b66273485d44e007a2616 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 20 七月 2020 14:50:17 +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